/* * #%L * ===================================================== * _____ _ ____ _ _ _ _ * |_ _|_ __ _ _ ___| |_ / __ \| | | | ___ | | | | * | | | '__| | | / __| __|/ / _` | |_| |/ __|| |_| | * | | | | | |_| \__ \ |_| | (_| | _ |\__ \| _ | * |_| |_| \__,_|___/\__|\ \__,_|_| |_||___/|_| |_| * \____/ * * ===================================================== * * Hochschule Hannover * (University of Applied Sciences and Arts, Hannover) * Faculty IV, Dept. of Computer Science * Ricklinger Stadtweg 118, 30459 Hannover, Germany * * Email: trust@f4-i.fh-hannover.de * Website: http://trust.f4.hs-hannover.de/ * * This file is part of visitmeta-dataservice, version 0.6.0, * implemented by the Trust@HsH research group at the Hochschule Hannover. * %% * Copyright (C) 2012 - 2016 Trust@HsH * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ package de.hshannover.f4.trust.visitmeta.ifmap; import java.util.List; import de.hshannover.f4.trust.visitmeta.dataservice.internalDatatypes.InternalIdentifier; import de.hshannover.f4.trust.visitmeta.dataservice.internalDatatypes.InternalMetadata; /** * Represents one ResultItem as specified by the IF-MAP protocol. */ public class ResultItem { private final InternalIdentifier mId1; private final InternalIdentifier mId2; private final List<InternalMetadata> mMetadata; private final boolean mIsLinkUpdate; private final ResultItemTypeEnum mType; public ResultItem(InternalIdentifier id1, InternalIdentifier id2, List<InternalMetadata> metadata, ResultItemTypeEnum type) { super(); mId1 = id1; mId2 = id2; mMetadata = metadata; mType = type; if (id1 == null) { throw new IllegalArgumentException("id1 cannot be null"); } if (id1 != null && id2 != null) { mIsLinkUpdate = true; } else { mIsLinkUpdate = false; } } public InternalIdentifier getId1() { return mId1; } public InternalIdentifier getId2() { return mId2; } public List<InternalMetadata> getMetadata() { return mMetadata; } public ResultItemTypeEnum getType() { return mType; } @Override public boolean equals(Object other) { if (other == null) { return false; } if (other == this) { return true; } if (!(other instanceof ResultItem)) { return false; } ResultItem otherItem = (ResultItem) other; if (mIsLinkUpdate != otherItem.mIsLinkUpdate) { return false; } if (mType != otherItem.mType) { return false; } if (getId1() == null) { if (otherItem.getId1() != null) { return false; } } else if (!getId1().equals(otherItem.getId1())) { return false; } if (getId2() == null) { if (otherItem.getId2() != null) { return false; } } else if (!getId2().equals(otherItem.getId2())) { return false; } if (!getMetadata().equals(otherItem.getMetadata())) { return false; } return true; } @Override public String toString() { StringBuilder s = new StringBuilder("ResultItem("); s.append(mId1); s.append(" -- "); for (InternalMetadata m : mMetadata) { s.append(m); s.append(" "); } s.append("-- "); s.append(mId2); s.append("["); s.append(mIsLinkUpdate); s.append("])"); return s.toString(); } }