// Path: src/main/java/de/otto/edison/hal/Curies.java
// public static Curies emptyCuries() {
//     return new Curies();
// }
// 
// Path: src/main/java/de/otto/edison/hal/Link.java
// public static Builder linkBuilder(final String rel, final String href) {
//     return new Builder(rel, href);
// }


import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.io.IOException;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Stream;
import static de.otto.edison.hal.Curies.emptyCuries;
import static de.otto.edison.hal.Link.linkBuilder;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;

    /**
     * {@inheritDoc}
     *
     * @since 0.1.0
     */
    @Override
    public int hashCode() {
        return links != null ? links.hashCode() : 0;
    }

    /**
     * {@inheritDoc}
     *
     * @since 0.1.0
     */
    @Override
    public String toString() {
        return "Links{" +
                "links=" + links +
                '}';
    }

    /**
     * A Builder used to build Links instances.
     *
     * @since 0.2.0
     */
    public static class Builder {
        private final Map<String,Object> links = new LinkedHashMap<>();
// Path: src/main/java/de/otto/edison/hal/Curies.java
// public static Curies emptyCuries() {
//     return new Curies();
// }
// 
// Path: src/main/java/de/otto/edison/hal/Link.java
// public static Builder linkBuilder(final String rel, final String href) {
//     return new Builder(rel, href);
// }


// Path: src/main/java/de/otto/edison/hal/Links.java
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.io.IOException;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Stream;
import static de.otto.edison.hal.Curies.emptyCuries;
import static de.otto.edison.hal.Link.linkBuilder;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;


    /**
     * {@inheritDoc}
     *
     * @since 0.1.0
     */
    @Override
    public int hashCode() {
        return links != null ? links.hashCode() : 0;
    }

    /**
     * {@inheritDoc}
     *
     * @since 0.1.0
     */
    @Override
    public String toString() {
        return "Links{" +
                "links=" + links +
                '}';
    }

    /**
     * A Builder used to build Links instances.
     *
     * @since 0.2.0
     */
    public static class Builder {
        private final Map<String,Object> links = new LinkedHashMap<>();
        private Curies curies = emptyCuries();