org.locationtech.geogig.osm.internal.history.Relation.java Source code

Java tutorial

Introduction

Here is the source code for org.locationtech.geogig.osm.internal.history.Relation.java

Source

/* Copyright (c) 2013 Boundless and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Distribution License v1.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/edl-v10.html
 *
 * Contributors:
 * Victor Olaya (Boundless) - initial implementation
 */
package org.locationtech.geogig.osm.internal.history;

import java.util.List;

import org.eclipse.jdt.annotation.Nullable;

import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;

/**
 *
 */
public class Relation extends Primitive {

    public static class Member {
        private String type;

        private long ref;

        private String role;

        public Member(String type, long ref, @Nullable String role) {
            this.type = type;
            this.ref = ref;
            this.role = role;
        }

        public String getType() {
            return type;
        }

        public long getRef() {
            return ref;
        }

        public Optional<String> getRole() {
            return Optional.fromNullable(role);
        }

        @Override
        public String toString() {
            return new StringBuilder("[type:").append(type).append(",ref:").append(ref).append(",role:")
                    .append(role).append(']').toString();
        }
    }

    private List<Member> members;

    public Relation() {
        super();
        members = Lists.newLinkedList();
    }

    public ImmutableList<Member> getMembers() {
        return ImmutableList.copyOf(members);
    }

    /**
     * @param member
     */
    void addMember(Member member) {
        members.add(member);
    }

    @Override
    public String toString() {
        return new StringBuilder(super.toString()).append(",members:").append(members).append(']').toString();
    }

}