/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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. */ package org.apache.atlas.model.instance; import java.io.Serializable; import java.util.List; import java.util.Map; import java.util.Objects; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSeeAlso; import org.apache.atlas.model.PList; import org.apache.atlas.model.SearchFilter.SortType; import org.apache.atlas.model.typedef.AtlasEntityDef; import org.codehaus.jackson.annotate.JsonAutoDetect; import static org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.PUBLIC_ONLY; import static org.codehaus.jackson.annotate.JsonAutoDetect.Visibility.NONE; import org.codehaus.jackson.annotate.JsonIgnoreProperties; import org.codehaus.jackson.map.annotate.JsonSerialize; /** * An instance of an entity - like hive_table, hive_database. */ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) @XmlRootElement @XmlAccessorType(XmlAccessType.PROPERTY) public class AtlasEntityHeader extends AtlasStruct implements Serializable { private static final long serialVersionUID = 1L; private String guid = null; private AtlasEntity.Status status = AtlasEntity.Status.ACTIVE; private String displayText = null; private List<String> classificationNames = null; public AtlasEntityHeader() { this(null, null); } public AtlasEntityHeader(String typeName) { this(typeName, null); } public AtlasEntityHeader(AtlasEntityDef entityDef) { this(entityDef != null ? entityDef.getName() : null, null); } public AtlasEntityHeader(String typeName, Map<String, Object> attributes) { super(typeName, attributes); setClassificationNames(null); } public AtlasEntityHeader(String typeName, String guid, Map<String, Object> attributes) { super(typeName, attributes); setGuid(guid); setClassificationNames(null); } public AtlasEntityHeader(AtlasEntityHeader other) { super(other); if (other != null) { setGuid(other.getGuid()); setStatus(other.getStatus()); setDisplayText(other.getDisplayText()); setClassificationNames(other.getClassificationNames()); } } public String getGuid() { return guid; } public void setGuid(String guid) { this.guid = guid; } public AtlasEntity.Status getStatus() { return status; } public void setStatus(AtlasEntity.Status status) { this.status = status; } public String getDisplayText() { return displayText; } public void setDisplayText(final String displayText) { this.displayText = displayText; } public List<String> getClassificationNames(){ return classificationNames; } public void setClassificationNames(List<String> classificationNames) { this.classificationNames = classificationNames; } @Override public StringBuilder toString(StringBuilder sb) { if (sb == null) { sb = new StringBuilder(); } sb.append("AtlasEntityHeader{"); sb.append("guid='").append(guid).append('\''); sb.append(", status=").append(status); sb.append(", displayText=").append(displayText); sb.append(", classificationNames=["); dumpObjects(classificationNames, sb); sb.append("],"); sb.append(", "); super.toString(sb); sb.append('}'); return sb; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; if (!super.equals(o)) return false; AtlasEntityHeader that = (AtlasEntityHeader) o; return Objects.equals(guid, that.guid) && status == that.status && Objects.equals(displayText, that.displayText) && Objects.equals(classificationNames, that.classificationNames); } @Override public int hashCode() { return Objects.hash(super.hashCode(), guid, status, displayText, classificationNames); } @Override public String toString() { return toString(new StringBuilder()).toString(); } /** * REST serialization friendly list. */ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) @XmlRootElement @XmlAccessorType(XmlAccessType.PROPERTY) @XmlSeeAlso(AtlasEntity.class) public static class AtlasEntityHeaders extends PList<AtlasEntityHeader> { private static final long serialVersionUID = 1L; public AtlasEntityHeaders() { super(); } public AtlasEntityHeaders(List<AtlasEntityHeader> list) { super(list); } public AtlasEntityHeaders(List list, long startIndex, int pageSize, long totalCount, SortType sortType, String sortBy) { super(list, startIndex, pageSize, totalCount, sortType, sortBy); } } }