Commit aa441de4 by Pinal Shah Committed by nixonrodrigues

ATLAS-3876 : Relationship Search API not showing correct approximateCount

parent 4a57f92f
...@@ -670,7 +670,7 @@ public class AtlasStructType extends AtlasType { ...@@ -670,7 +670,7 @@ public class AtlasStructType extends AtlasType {
throw new AtlasBaseException(AtlasErrorCode.UNKNOWN_ATTRIBUTE, attrName, structDef.getName()); throw new AtlasBaseException(AtlasErrorCode.UNKNOWN_ATTRIBUTE, attrName, structDef.getName());
} }
AtlasEntityType getReferencedEntityType(AtlasType type) { static AtlasEntityType getReferencedEntityType(AtlasType type) {
if (type instanceof AtlasArrayType) { if (type instanceof AtlasArrayType) {
type = ((AtlasArrayType)type).getElementType(); type = ((AtlasArrayType)type).getElementType();
} }
...@@ -980,6 +980,11 @@ public class AtlasStructType extends AtlasType { ...@@ -980,6 +980,11 @@ public class AtlasStructType extends AtlasType {
return (relationshipLabel == null) ? getEdgeLabel(qualifiedName) : relationshipLabel; return (relationshipLabel == null) ? getEdgeLabel(qualifiedName) : relationshipLabel;
} }
public AtlasEntityType getReferencedEntityType(AtlasTypeRegistry typeRegistry) throws AtlasBaseException {
AtlasType type = typeRegistry.getType(attributeDef.getTypeName());
return AtlasStructType.getReferencedEntityType(type);
}
public static String getQualifiedAttributeName(AtlasStructDef structDef, String attrName) { public static String getQualifiedAttributeName(AtlasStructDef structDef, String attrName) {
if (isRootType(structDef)) { if (isRootType(structDef)) {
return attrName; return attrName;
......
...@@ -87,11 +87,12 @@ public interface AtlasDiscoveryService { ...@@ -87,11 +87,12 @@ public interface AtlasDiscoveryService {
* @param sortByAttribute sort the result using this attribute name, default value is 'name' * @param sortByAttribute sort the result using this attribute name, default value is 'name'
* @param sortOrder sorting order * @param sortOrder sorting order
* @param excludeDeletedEntities exclude deleted entities in search result. * @param excludeDeletedEntities exclude deleted entities in search result.
* @param getApproximateCount
* @param limit number of resultant rows (for pagination). [ limit > 0 ] and [ limit < maxlimit ]. -1 maps to atlas.search.defaultlimit property. * @param limit number of resultant rows (for pagination). [ limit > 0 ] and [ limit < maxlimit ]. -1 maps to atlas.search.defaultlimit property.
* @param offset offset to the results returned (for pagination). [ offset >= 0 ]. -1 maps to offset 0. * @param offset offset to the results returned (for pagination). [ offset >= 0 ]. -1 maps to offset 0.
* @return AtlasSearchResult * @return AtlasSearchResult
*/ */
AtlasSearchResult searchRelatedEntities(String guid, String relation, Set<String> attributes, String sortByAttribute, SortOrder sortOrder, boolean excludeDeletedEntities, int limit, int offset) throws AtlasBaseException; AtlasSearchResult searchRelatedEntities(String guid, String relation, Set<String> attributes, String sortByAttribute, SortOrder sortOrder, boolean excludeDeletedEntities, boolean getApproximateCount, int limit, int offset) throws AtlasBaseException;
/** /**
* *
......
...@@ -30,6 +30,7 @@ import org.apache.atlas.model.discovery.*; ...@@ -30,6 +30,7 @@ import org.apache.atlas.model.discovery.*;
import org.apache.atlas.model.discovery.AtlasSearchResult.AtlasFullTextResult; import org.apache.atlas.model.discovery.AtlasSearchResult.AtlasFullTextResult;
import org.apache.atlas.model.discovery.AtlasSearchResult.AtlasQueryType; import org.apache.atlas.model.discovery.AtlasSearchResult.AtlasQueryType;
import org.apache.atlas.model.discovery.AtlasSearchResult.AttributeSearchResult; import org.apache.atlas.model.discovery.AtlasSearchResult.AttributeSearchResult;
import org.apache.atlas.model.instance.AtlasEntity;
import org.apache.atlas.model.instance.AtlasEntityHeader; import org.apache.atlas.model.instance.AtlasEntityHeader;
import org.apache.atlas.model.instance.AtlasObjectId; import org.apache.atlas.model.instance.AtlasObjectId;
import org.apache.atlas.model.profile.AtlasUserSavedSearch; import org.apache.atlas.model.profile.AtlasUserSavedSearch;
...@@ -49,28 +50,33 @@ import org.apache.atlas.type.AtlasBuiltInTypes.AtlasObjectIdType; ...@@ -49,28 +50,33 @@ import org.apache.atlas.type.AtlasBuiltInTypes.AtlasObjectIdType;
import org.apache.atlas.type.AtlasStructType.AtlasAttribute; import org.apache.atlas.type.AtlasStructType.AtlasAttribute;
import org.apache.atlas.util.AtlasGremlinQueryProvider; import org.apache.atlas.util.AtlasGremlinQueryProvider;
import org.apache.atlas.util.AtlasGremlinQueryProvider.AtlasGremlinQuery; import org.apache.atlas.util.AtlasGremlinQueryProvider.AtlasGremlinQuery;
import org.apache.atlas.util.SearchPredicateUtil;
import org.apache.atlas.util.SearchTracker; import org.apache.atlas.util.SearchTracker;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.tinkerpop.gremlin.process.traversal.Order;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.inject.Inject; import javax.inject.Inject;
import javax.script.Bindings;
import javax.script.ScriptEngine; import javax.script.ScriptEngine;
import javax.script.ScriptException; import javax.script.ScriptException;
import java.util.*; import java.util.*;
import static org.apache.atlas.AtlasErrorCode.*; import static org.apache.atlas.AtlasErrorCode.*;
import static org.apache.atlas.SortOrder.ASCENDING; import static org.apache.atlas.SortOrder.ASCENDING;
import static org.apache.atlas.SortOrder.DESCENDING;
import static org.apache.atlas.model.instance.AtlasEntity.Status.ACTIVE; import static org.apache.atlas.model.instance.AtlasEntity.Status.ACTIVE;
import static org.apache.atlas.model.instance.AtlasEntity.Status.DELETED; import static org.apache.atlas.model.instance.AtlasEntity.Status.DELETED;
import static org.apache.atlas.repository.Constants.ASSET_ENTITY_TYPE; import static org.apache.atlas.repository.Constants.ASSET_ENTITY_TYPE;
import static org.apache.atlas.repository.Constants.OWNER_ATTRIBUTE; import static org.apache.atlas.repository.Constants.OWNER_ATTRIBUTE;
import static org.apache.atlas.util.AtlasGremlinQueryProvider.AtlasGremlinQuery.*; import static org.apache.atlas.util.AtlasGremlinQueryProvider.AtlasGremlinQuery.BASIC_SEARCH_STATE_FILTER;
import static org.apache.atlas.util.AtlasGremlinQueryProvider.AtlasGremlinQuery.TO_RANGE_LIST;
@Component @Component
public class EntityDiscoveryService implements AtlasDiscoveryService { public class EntityDiscoveryService implements AtlasDiscoveryService {
...@@ -564,13 +570,14 @@ public class EntityDiscoveryService implements AtlasDiscoveryService { ...@@ -564,13 +570,14 @@ public class EntityDiscoveryService implements AtlasDiscoveryService {
@Override @Override
@GraphTransaction @GraphTransaction
public AtlasSearchResult searchRelatedEntities(String guid, String relation, Set<String> attributes, String sortBy, SortOrder sortOrder, public AtlasSearchResult searchRelatedEntities(String guid, String relation, Set<String> attributes, String sortBy, SortOrder sortOrder,
boolean excludeDeletedEntities, int limit, int offset) throws AtlasBaseException { boolean excludeDeletedEntities, boolean getApproximateCount, int limit, int offset) throws AtlasBaseException {
AtlasSearchResult ret = new AtlasSearchResult(AtlasQueryType.RELATIONSHIP); AtlasSearchResult ret = new AtlasSearchResult(AtlasQueryType.RELATIONSHIP);
if (StringUtils.isEmpty(guid) || StringUtils.isEmpty(relation)) { if (StringUtils.isEmpty(guid) || StringUtils.isEmpty(relation)) {
throw new AtlasBaseException(AtlasErrorCode.INVALID_PARAMETERS, "guid: '" + guid + "', relation: '" + relation + "'"); throw new AtlasBaseException(AtlasErrorCode.INVALID_PARAMETERS, "guid: '" + guid + "', relation: '" + relation + "'");
} }
//validate entity
AtlasVertex entityVertex = entityRetriever.getEntityVertex(guid); AtlasVertex entityVertex = entityRetriever.getEntityVertex(guid);
String entityTypeName = GraphHelper.getTypeName(entityVertex); String entityTypeName = GraphHelper.getTypeName(entityVertex);
AtlasEntityType entityType = typeRegistry.getEntityTypeByName(entityTypeName); AtlasEntityType entityType = typeRegistry.getEntityTypeByName(entityTypeName);
...@@ -579,130 +586,111 @@ public class EntityDiscoveryService implements AtlasDiscoveryService { ...@@ -579,130 +586,111 @@ public class EntityDiscoveryService implements AtlasDiscoveryService {
throw new AtlasBaseException(AtlasErrorCode.INVALID_RELATIONSHIP_TYPE, entityTypeName, guid); throw new AtlasBaseException(AtlasErrorCode.INVALID_RELATIONSHIP_TYPE, entityTypeName, guid);
} }
AtlasAttribute attribute = entityType.getAttribute(relation); //validate relation
AtlasEntityType endEntityType = null;
AtlasAttribute attribute = entityType.getAttribute(relation);
if (attribute == null) { if (attribute == null) {
attribute = entityType.getRelationshipAttribute(relation, null); attribute = entityType.getRelationshipAttribute(relation, null);
} }
if (attribute != null) { if (attribute != null) {
if (attribute.isObjectRef()) { endEntityType = attribute.getReferencedEntityType(typeRegistry);
if (endEntityType != null) {
relation = attribute.getRelationshipEdgeLabel(); relation = attribute.getRelationshipEdgeLabel();
} else { } else {
throw new AtlasBaseException(AtlasErrorCode.INVALID_RELATIONSHIP_ATTRIBUTE, relation, attribute.getTypeName()); throw new AtlasBaseException(AtlasErrorCode.INVALID_RELATIONSHIP_ATTRIBUTE, relation, attribute.getTypeName());
} }
} }
//validate sortBy attribute
String sortByAttributeName = DEFAULT_SORT_ATTRIBUTE_NAME; String sortByAttributeName = DEFAULT_SORT_ATTRIBUTE_NAME;
if (StringUtils.isNotEmpty(sortBy)) { if (StringUtils.isNotEmpty(sortBy)) {
sortByAttributeName = sortBy; sortByAttributeName = sortBy;
} }
//get entity type of relationship (End vertex entity type) from relationship label if (endEntityType != null) {
Iterator<AtlasEdge> edges = GraphHelper.getAdjacentEdgesByLabel(entityVertex, AtlasEdgeDirection.BOTH, relation); AtlasAttribute sortByAttribute = endEntityType.getAttribute(sortByAttributeName);
AtlasEntityType endEntityType = null;
if (edges != null && edges.hasNext()) {
AtlasEdge relationEdge = edges.next();
AtlasVertex outVertex = relationEdge.getOutVertex();
AtlasVertex inVertex = relationEdge.getInVertex();
String outVertexId = outVertex != null ? outVertex.getIdForDisplay() : null;
AtlasVertex endVertex = StringUtils.equals(outVertexId, entityVertex.getIdForDisplay()) ? inVertex : outVertex;
String endTypeName = GraphHelper.getTypeName(endVertex);
endEntityType = typeRegistry.getEntityTypeByName(endTypeName);
}
if (endEntityType == null) {
ret.setEntities(new ArrayList<>());
if (LOG.isDebugEnabled()) {
LOG.debug("Invalid relation : {} ", relation);
}
return ret;
}
AtlasAttribute sortByAttribute = endEntityType.getAttribute(sortByAttributeName);
if (sortByAttribute == null) { if (sortByAttribute == null) {
sortByAttributeName = null; sortByAttributeName = null;
sortOrder = null; sortOrder = null;
if (LOG.isDebugEnabled()) {
if (StringUtils.isNotEmpty(sortBy)) { if (StringUtils.isNotEmpty(sortBy)) {
LOG.debug("Invalid sortBy Attribute {} for entityType {}, Ignoring Sorting", sortBy, endEntityType.getTypeName()); LOG.info("Invalid sortBy Attribute {} for entityType {}, Ignoring Sorting", sortBy, endEntityType.getTypeName());
} else { } else {
LOG.debug("Invalid Default sortBy Attribute {} for entityType {}, Ignoring Sorting", DEFAULT_SORT_ATTRIBUTE_NAME, endEntityType.getTypeName()); LOG.info("Invalid Default sortBy Attribute {} for entityType {}, Ignoring Sorting", DEFAULT_SORT_ATTRIBUTE_NAME, endEntityType.getTypeName());
}
} else {
sortByAttributeName = sortByAttribute.getVertexPropertyName();
if (sortOrder == null) {
sortOrder = ASCENDING;
} }
} }
} else { } else {
sortByAttributeName = sortByAttribute.getVertexPropertyName(); sortOrder = null;
if (sortOrder == null) { if (StringUtils.isNotEmpty(sortBy)) {
sortOrder = ASCENDING; LOG.info("Invalid sortBy Attribute {}, Ignoring Sorting", sortBy);
} }
} }
QueryParams params = QueryParams.getNormalizedParams(limit, offset); //get relationship(end vertices) vertices
ScriptEngine scriptEngine = graph.getGremlinScriptEngine(); GraphTraversal gt = graph.V(entityVertex.getId()).bothE(relation).otherV();
Bindings bindings = scriptEngine.createBindings();
Set<String> states = getEntityStates();
String relatedEntitiesQuery = gremlinQueryProvider.getQuery(RELATIONSHIP_SEARCH);
if (excludeDeletedEntities) { if (excludeDeletedEntities) {
states.remove(DELETED.toString()); gt.has(Constants.STATE_PROPERTY_KEY, AtlasEntity.Status.ACTIVE.name());
} }
if (sortOrder == ASCENDING) { if (sortOrder != null) {
relatedEntitiesQuery += gremlinQueryProvider.getQuery(RELATIONSHIP_SEARCH_ASCENDING_SORT); if (sortOrder == ASCENDING) {
bindings.put(SORT_ATTRIBUTE_NAME, sortByAttributeName); gt.order().by(sortByAttributeName, Order.asc);
} else {
gt.order().by(sortByAttributeName, Order.desc);
}
}
gt.range(offset, offset + limit);
} else if (sortOrder == DESCENDING) { List<AtlasEntityHeader> resultList = new ArrayList<>();
relatedEntitiesQuery += gremlinQueryProvider.getQuery(RELATIONSHIP_SEARCH_DESCENDING_SORT); while (gt.hasNext()) {
bindings.put(SORT_ATTRIBUTE_NAME, sortByAttributeName); Vertex v = (Vertex) gt.next();
if (v != null && v.property(Constants.GUID_PROPERTY_KEY).isPresent()) {
String endVertexGuid = v.property(Constants.GUID_PROPERTY_KEY).value().toString();
resultList.add(entityRetriever.toAtlasEntityHeader(endVertexGuid, attributes));
}
} }
relatedEntitiesQuery += gremlinQueryProvider.getQuery(TO_RANGE_LIST); ret.setEntities(resultList);
bindings.put("g", graph); if (ret.getEntities() == null) {
bindings.put("guid", guid); ret.setEntities(new ArrayList<>());
bindings.put("relation", relation); }
bindings.put("states", Collections.unmodifiableSet(states));
bindings.put("startIdx", params.offset());
bindings.put("endIdx", params.offset() + params.limit());
try { //set approximate count
Object result = graph.executeGremlinScript(scriptEngine, bindings, relatedEntitiesQuery, false); //state of the edge and endVertex will be same
if (getApproximateCount) {
Iterator<AtlasEdge> edges = GraphHelper.getAdjacentEdgesByLabel(entityVertex, AtlasEdgeDirection.BOTH, relation);
if (result instanceof List && CollectionUtils.isNotEmpty((List) result)) { if (excludeDeletedEntities) {
List<?> queryResult = (List) result; List<AtlasEdge> edgeList = new ArrayList<>();
Object firstElement = queryResult.get(0); edges.forEachRemaining(edgeList::add);
if (firstElement instanceof AtlasVertex) { Predicate activePredicate = SearchPredicateUtil.getEQPredicateGenerator().generatePredicate
List<AtlasVertex> vertices = (List<AtlasVertex>) queryResult; (Constants.STATE_PROPERTY_KEY, AtlasEntity.Status.ACTIVE.name(), String.class);
List<AtlasEntityHeader> resultList = new ArrayList<>(vertices.size());
for (AtlasVertex vertex : vertices) { CollectionUtils.filter(edgeList, activePredicate);
resultList.add(entityRetriever.toAtlasEntityHeader(vertex, attributes)); ret.setApproximateCount(edgeList.size());
}
ret.setEntities(resultList); } else {
} ret.setApproximateCount(IteratorUtils.size(edges));
}
if (ret.getEntities() == null) {
ret.setEntities(new ArrayList<>());
} }
} catch (ScriptException e) {
if (LOG.isDebugEnabled()) {
LOG.debug("Gremlin script execution failed for relationship search query: {}", relatedEntitiesQuery, e);
}
throw new AtlasBaseException(AtlasErrorCode.INTERNAL_ERROR, "Relationship search query failed");
} finally {
graph.releaseGremlinScriptEngine(scriptEngine);
} }
scrubSearchResults(ret); scrubSearchResults(ret);
......
...@@ -75,7 +75,7 @@ public abstract class SearchProcessor { ...@@ -75,7 +75,7 @@ public abstract class SearchProcessor {
public static final String CUSTOM_ATTR_SEARCH_FORMAT = "\"\\\"%s\\\":\\\"%s\\\"\""; public static final String CUSTOM_ATTR_SEARCH_FORMAT = "\"\\\"%s\\\":\\\"%s\\\"\"";
public static final String CUSTOM_ATTR_SEARCH_FORMAT_GRAPH = "\"%s\":\"%s\""; public static final String CUSTOM_ATTR_SEARCH_FORMAT_GRAPH = "\"%s\":\"%s\"";
private static final Map<SearchParameters.Operator, String> OPERATOR_MAP = new HashMap<>(); private static final Map<SearchParameters.Operator, String> OPERATOR_MAP = new HashMap<>();
private static final Map<SearchParameters.Operator, VertexAttributePredicateGenerator> OPERATOR_PREDICATE_MAP = new HashMap<>(); private static final Map<SearchParameters.Operator, ElementAttributePredicateGenerator> OPERATOR_PREDICATE_MAP = new HashMap<>();
static static
{ {
...@@ -697,7 +697,7 @@ public abstract class SearchProcessor { ...@@ -697,7 +697,7 @@ public abstract class SearchProcessor {
Predicate ret = null; Predicate ret = null;
AtlasAttribute attribute = type.getAttribute(attrName); AtlasAttribute attribute = type.getAttribute(attrName);
VertexAttributePredicateGenerator predicate = OPERATOR_PREDICATE_MAP.get(op); ElementAttributePredicateGenerator predicate = OPERATOR_PREDICATE_MAP.get(op);
if (attribute != null && predicate != null) { if (attribute != null && predicate != null) {
final AtlasType attrType = attribute.getAttributeType(); final AtlasType attrType = attribute.getAttributeType();
......
...@@ -201,6 +201,10 @@ public class EntityGraphRetriever { ...@@ -201,6 +201,10 @@ public class EntityGraphRetriever {
return toAtlasEntityHeader(getEntityVertex(guid)); return toAtlasEntityHeader(getEntityVertex(guid));
} }
public AtlasEntityHeader toAtlasEntityHeader(String guid, Set<String> attributes) throws AtlasBaseException {
return toAtlasEntityHeader(getEntityVertex(guid), attributes);
}
public AtlasEntityHeader toAtlasEntityHeader(AtlasVertex entityVertex) throws AtlasBaseException { public AtlasEntityHeader toAtlasEntityHeader(AtlasVertex entityVertex) throws AtlasBaseException {
return toAtlasEntityHeader(entityVertex, Collections.<String>emptySet()); return toAtlasEntityHeader(entityVertex, Collections.<String>emptySet());
} }
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
*/ */
package org.apache.atlas.util; package org.apache.atlas.util;
import org.apache.atlas.repository.graphdb.AtlasEdge;
import org.apache.atlas.repository.graphdb.AtlasElement;
import org.apache.atlas.repository.graphdb.AtlasVertex; import org.apache.atlas.repository.graphdb.AtlasVertex;
import org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2; import org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2;
import org.apache.atlas.type.AtlasEntityType; import org.apache.atlas.type.AtlasEntityType;
...@@ -43,12 +45,12 @@ public class SearchPredicateUtil { ...@@ -43,12 +45,12 @@ public class SearchPredicateUtil {
} }
}; };
public static VertexAttributePredicateGenerator getLTPredicateGenerator() { public static ElementAttributePredicateGenerator getLTPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getLTPredicateGenerator"); LOG.debug("==> getLTPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -88,12 +90,12 @@ public class SearchPredicateUtil { ...@@ -88,12 +90,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getGTPredicateGenerator() { public static ElementAttributePredicateGenerator getGTPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getGTPredicateGenerator"); LOG.debug("==> getGTPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -132,12 +134,12 @@ public class SearchPredicateUtil { ...@@ -132,12 +134,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getLTEPredicateGenerator() { public static ElementAttributePredicateGenerator getLTEPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getLTEPredicateGenerator"); LOG.debug("==> getLTEPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -177,12 +179,12 @@ public class SearchPredicateUtil { ...@@ -177,12 +179,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getGTEPredicateGenerator() { public static ElementAttributePredicateGenerator getGTEPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getGTEPredicateGenerator"); LOG.debug("==> getGTEPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -222,12 +224,12 @@ public class SearchPredicateUtil { ...@@ -222,12 +224,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getEQPredicateGenerator() { public static ElementAttributePredicateGenerator getEQPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getEQPredicateGenerator"); LOG.debug("==> getEQPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -269,12 +271,12 @@ public class SearchPredicateUtil { ...@@ -269,12 +271,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getNEQPredicateGenerator() { public static ElementAttributePredicateGenerator getNEQPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getNEQPredicateGenerator"); LOG.debug("==> getNEQPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -316,12 +318,12 @@ public class SearchPredicateUtil { ...@@ -316,12 +318,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getContainsAnyPredicateGenerator() { public static ElementAttributePredicateGenerator getContainsAnyPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getContainsAnyPredicateGenerator"); LOG.debug("==> getContainsAnyPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -329,7 +331,7 @@ public class SearchPredicateUtil { ...@@ -329,7 +331,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null || attrVal == null || !isValid(attrVal, attrClass)) { if (attrName == null || attrClass == null || attrVal == null || !isValid(attrVal, attrClass)) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass) { ret = new ElementAttributePredicate(attrName, attrClass) {
@Override @Override
public boolean compareValue(final Object vertexAttrVal) { public boolean compareValue(final Object vertexAttrVal) {
return CollectionUtils.containsAny((Collection) attrVal, (Collection) vertexAttrVal); return CollectionUtils.containsAny((Collection) attrVal, (Collection) vertexAttrVal);
...@@ -351,12 +353,12 @@ public class SearchPredicateUtil { ...@@ -351,12 +353,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getContainsAllPredicateGenerator() { public static ElementAttributePredicateGenerator getContainsAllPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getContainsAllPredicateGenerator"); LOG.debug("==> getContainsAllPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -364,7 +366,7 @@ public class SearchPredicateUtil { ...@@ -364,7 +366,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null || attrVal == null || !isValid(attrVal, attrClass)) { if (attrName == null || attrClass == null || attrVal == null || !isValid(attrVal, attrClass)) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass) { ret = new ElementAttributePredicate(attrName, attrClass) {
@Override @Override
public boolean compareValue(final Object vertexAttrVal) { public boolean compareValue(final Object vertexAttrVal) {
return ((Collection) attrVal).containsAll((Collection) vertexAttrVal); return ((Collection) attrVal).containsAll((Collection) vertexAttrVal);
...@@ -386,12 +388,12 @@ public class SearchPredicateUtil { ...@@ -386,12 +388,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getINPredicateGenerator() { public static ElementAttributePredicateGenerator getINPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getINPredicateGenerator"); LOG.debug("==> getINPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -399,7 +401,7 @@ public class SearchPredicateUtil { ...@@ -399,7 +401,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null || attrVal == null || !isValid(attrVal, attrClass)) { if (attrName == null || attrClass == null || attrVal == null || !isValid(attrVal, attrClass)) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass) { ret = new ElementAttributePredicate(attrName, attrClass) {
@Override @Override
public boolean compareValue(final Object vertexAttrVal) { public boolean compareValue(final Object vertexAttrVal) {
return ((Collection)attrVal).contains(vertexAttrVal); return ((Collection)attrVal).contains(vertexAttrVal);
...@@ -422,12 +424,12 @@ public class SearchPredicateUtil { ...@@ -422,12 +424,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getRegexPredicateGenerator() { public static ElementAttributePredicateGenerator getRegexPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getRegexPredicateGenerator"); LOG.debug("==> getRegexPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -451,12 +453,12 @@ public class SearchPredicateUtil { ...@@ -451,12 +453,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getLIKEPredicateGenerator() { public static ElementAttributePredicateGenerator getLIKEPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getLIKEPredicateGenerator"); LOG.debug("==> getLIKEPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -480,12 +482,12 @@ public class SearchPredicateUtil { ...@@ -480,12 +482,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getStartsWithPredicateGenerator() { public static ElementAttributePredicateGenerator getStartsWithPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getStartsWithPredicateGenerator"); LOG.debug("==> getStartsWithPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -509,12 +511,12 @@ public class SearchPredicateUtil { ...@@ -509,12 +511,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getEndsWithPredicateGenerator() { public static ElementAttributePredicateGenerator getEndsWithPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getEndsWithPredicateGenerator"); LOG.debug("==> getEndsWithPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -538,12 +540,12 @@ public class SearchPredicateUtil { ...@@ -538,12 +540,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getContainsPredicateGenerator() { public static ElementAttributePredicateGenerator getContainsPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getContainsPredicateGenerator"); LOG.debug("==> getContainsPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -554,7 +556,7 @@ public class SearchPredicateUtil { ...@@ -554,7 +556,7 @@ public class SearchPredicateUtil {
ret = StringPredicate.getContainsPredicate(attrName, attrClass, (String)attrVal); ret = StringPredicate.getContainsPredicate(attrName, attrClass, (String)attrVal);
} else if (Collection.class.isAssignableFrom(attrClass)) { } else if (Collection.class.isAssignableFrom(attrClass)) {
// Check if the provided value is present in the list of stored values // Check if the provided value is present in the list of stored values
ret = new VertexAttributePredicate(attrName, attrClass) { ret = new ElementAttributePredicate(attrName, attrClass) {
@Override @Override
protected boolean compareValue(final Object vertexAttrVal) { protected boolean compareValue(final Object vertexAttrVal) {
return ((Collection) vertexAttrVal).contains(attrVal); return ((Collection) vertexAttrVal).contains(attrVal);
...@@ -575,12 +577,12 @@ public class SearchPredicateUtil { ...@@ -575,12 +577,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getNotContainsPredicateGenerator() { public static ElementAttributePredicateGenerator getNotContainsPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getNotContainsPredicateGenerator"); LOG.debug("==> getNotContainsPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -591,7 +593,7 @@ public class SearchPredicateUtil { ...@@ -591,7 +593,7 @@ public class SearchPredicateUtil {
ret = StringPredicate.getNotContainsPredicate(attrName, attrClass, (String) attrVal); ret = StringPredicate.getNotContainsPredicate(attrName, attrClass, (String) attrVal);
} else if (Collection.class.isAssignableFrom(attrClass)) { } else if (Collection.class.isAssignableFrom(attrClass)) {
// Check if the provided value is present in the list of stored values // Check if the provided value is present in the list of stored values
ret = new VertexAttributePredicate(attrName, attrClass,true) { ret = new ElementAttributePredicate(attrName, attrClass,true) {
@Override @Override
protected boolean compareValue(final Object vertexAttrVal) { protected boolean compareValue(final Object vertexAttrVal) {
return vertexAttrVal == null || !((Collection) vertexAttrVal).contains(attrVal); return vertexAttrVal == null || !((Collection) vertexAttrVal).contains(attrVal);
...@@ -612,12 +614,12 @@ public class SearchPredicateUtil { ...@@ -612,12 +614,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getIsNullPredicateGenerator() { public static ElementAttributePredicateGenerator getIsNullPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getIsNullPredicateGenerator"); LOG.debug("==> getIsNullPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -625,7 +627,7 @@ public class SearchPredicateUtil { ...@@ -625,7 +627,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null) { if (attrName == null || attrClass == null) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass, true) { ret = new ElementAttributePredicate(attrName, attrClass, true) {
@Override @Override
protected boolean compareValue(final Object vertexAttrVal) { protected boolean compareValue(final Object vertexAttrVal) {
return vertexAttrVal == null; return vertexAttrVal == null;
...@@ -644,12 +646,12 @@ public class SearchPredicateUtil { ...@@ -644,12 +646,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getNotNullPredicateGenerator() { public static ElementAttributePredicateGenerator getNotNullPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getNotNullPredicateGenerator"); LOG.debug("==> getNotNullPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -657,7 +659,7 @@ public class SearchPredicateUtil { ...@@ -657,7 +659,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null) { if (attrName == null || attrClass == null) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass, true) { ret = new ElementAttributePredicate(attrName, attrClass, true) {
@Override @Override
protected boolean compareValue(final Object vertexAttrVal) { protected boolean compareValue(final Object vertexAttrVal) {
return vertexAttrVal != null; return vertexAttrVal != null;
...@@ -676,12 +678,12 @@ public class SearchPredicateUtil { ...@@ -676,12 +678,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getNotEmptyPredicateGenerator() { public static ElementAttributePredicateGenerator getNotEmptyPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getNotEmptyPredicateGenerator"); LOG.debug("==> getNotEmptyPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -689,7 +691,7 @@ public class SearchPredicateUtil { ...@@ -689,7 +691,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null) { if (attrName == null || attrClass == null) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass, true) { ret = new ElementAttributePredicate(attrName, attrClass, true) {
@Override @Override
protected boolean compareValue(final Object vertexAttrVal) { protected boolean compareValue(final Object vertexAttrVal) {
boolean ret = false; boolean ret = false;
...@@ -720,12 +722,12 @@ public class SearchPredicateUtil { ...@@ -720,12 +722,12 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public static VertexAttributePredicateGenerator getIsNullOrEmptyPredicateGenerator() { public static ElementAttributePredicateGenerator getIsNullOrEmptyPredicateGenerator() {
if (LOG.isDebugEnabled()) { if (LOG.isDebugEnabled()) {
LOG.debug("==> getIsNullOrEmptyPredicateGenerator"); LOG.debug("==> getIsNullOrEmptyPredicateGenerator");
} }
VertexAttributePredicateGenerator ret = new VertexAttributePredicateGenerator() { ElementAttributePredicateGenerator ret = new ElementAttributePredicateGenerator() {
@Override @Override
public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) { public Predicate generatePredicate(final String attrName, final Object attrVal, final Class attrClass) {
final Predicate ret; final Predicate ret;
...@@ -733,7 +735,7 @@ public class SearchPredicateUtil { ...@@ -733,7 +735,7 @@ public class SearchPredicateUtil {
if (attrName == null || attrClass == null) { if (attrName == null || attrClass == null) {
ret = ALWAYS_FALSE; ret = ALWAYS_FALSE;
} else { } else {
ret = new VertexAttributePredicate(attrName, attrClass, true) { ret = new ElementAttributePredicate(attrName, attrClass, true) {
@Override @Override
protected boolean compareValue(final Object vertexAttrVal) { protected boolean compareValue(final Object vertexAttrVal) {
final boolean ret; final boolean ret;
...@@ -764,20 +766,20 @@ public class SearchPredicateUtil { ...@@ -764,20 +766,20 @@ public class SearchPredicateUtil {
return ret; return ret;
} }
public interface VertexAttributePredicateGenerator { public interface ElementAttributePredicateGenerator {
Predicate generatePredicate(String attrName, Object attrVal, Class attrClass); Predicate generatePredicate(String attrName, Object attrVal, Class attrClass);
} }
static abstract class VertexAttributePredicate implements Predicate { static abstract class ElementAttributePredicate implements Predicate {
final String attrName; final String attrName;
final Class attrClass; final Class attrClass;
final boolean isNullValid; final boolean isNullValid;
VertexAttributePredicate(String attrName, Class attrClass) { ElementAttributePredicate(String attrName, Class attrClass) {
this(attrName, attrClass, false); this(attrName, attrClass, false);
} }
VertexAttributePredicate(String attrName, Class attrClass, boolean isNullValid) { ElementAttributePredicate(String attrName, Class attrClass, boolean isNullValid) {
this.attrName = attrName; this.attrName = attrName;
this.attrClass = attrClass; this.attrClass = attrClass;
this.isNullValid = isNullValid; this.isNullValid = isNullValid;
...@@ -787,14 +789,14 @@ public class SearchPredicateUtil { ...@@ -787,14 +789,14 @@ public class SearchPredicateUtil {
public boolean evaluate(final Object object) { public boolean evaluate(final Object object) {
final boolean ret; final boolean ret;
AtlasVertex vertex = (object instanceof AtlasVertex) ? (AtlasVertex)object : null; AtlasElement element = (object instanceof AtlasVertex || object instanceof AtlasEdge) ? (AtlasElement) object : null;
if (vertex != null) { if (element != null) {
Object attrValue; Object attrValue;
if (Collection.class.isAssignableFrom(attrClass)) { if (Collection.class.isAssignableFrom(attrClass)) {
attrValue = vertex.getPropertyValues(attrName, attrClass); attrValue = element.getPropertyValues(attrName, attrClass);
} else { } else {
attrValue = AtlasGraphUtilsV2.getProperty(vertex, attrName, attrClass); attrValue = AtlasGraphUtilsV2.getProperty(element, attrName, attrClass);
} }
ret = (isNullValid || attrValue != null) && compareValue(attrValue); ret = (isNullValid || attrValue != null) && compareValue(attrValue);
...@@ -808,7 +810,7 @@ public class SearchPredicateUtil { ...@@ -808,7 +810,7 @@ public class SearchPredicateUtil {
protected abstract boolean compareValue(Object vertexAttrVal); protected abstract boolean compareValue(Object vertexAttrVal);
} }
static abstract class BooleanPredicate extends VertexAttributePredicate { static abstract class BooleanPredicate extends ElementAttributePredicate {
final Boolean value; final Boolean value;
BooleanPredicate(String attrName, Class attrClass, Boolean value) { BooleanPredicate(String attrName, Class attrClass, Boolean value) {
...@@ -822,7 +824,7 @@ public class SearchPredicateUtil { ...@@ -822,7 +824,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Boolean value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Boolean value) {
return new SearchPredicateUtil.BooleanPredicate(attrName, attrClass, value) { return new SearchPredicateUtil.BooleanPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Boolean) vertexAttrVal).compareTo(value) == 0; return ((Boolean) vertexAttrVal).compareTo(value) == 0;
...@@ -830,7 +832,7 @@ public class SearchPredicateUtil { ...@@ -830,7 +832,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Boolean value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Boolean value) {
return new SearchPredicateUtil.BooleanPredicate(attrName, attrClass, value, true) { return new SearchPredicateUtil.BooleanPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Boolean) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Boolean) vertexAttrVal).compareTo(value) != 0;
...@@ -839,7 +841,7 @@ public class SearchPredicateUtil { ...@@ -839,7 +841,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class ShortPredicate extends VertexAttributePredicate { static abstract class ShortPredicate extends ElementAttributePredicate {
final Short value; final Short value;
ShortPredicate(String attrName, Class attrClass, Short value) { ShortPredicate(String attrName, Class attrClass, Short value) {
...@@ -853,7 +855,7 @@ public class SearchPredicateUtil { ...@@ -853,7 +855,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Short value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Short value) {
return new ShortPredicate(attrName, attrClass, value) { return new ShortPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Short) vertexAttrVal).compareTo(value) == 0; return ((Short) vertexAttrVal).compareTo(value) == 0;
...@@ -861,7 +863,7 @@ public class SearchPredicateUtil { ...@@ -861,7 +863,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Short value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Short value) {
return new ShortPredicate(attrName, attrClass, value, true) { return new ShortPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Short) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Short) vertexAttrVal).compareTo(value) != 0;
...@@ -869,7 +871,7 @@ public class SearchPredicateUtil { ...@@ -869,7 +871,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, Short value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, Short value) {
return new ShortPredicate(attrName, attrClass, value) { return new ShortPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Short) vertexAttrVal).compareTo(value) < 0; return ((Short) vertexAttrVal).compareTo(value) < 0;
...@@ -877,7 +879,7 @@ public class SearchPredicateUtil { ...@@ -877,7 +879,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, Short value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, Short value) {
return new ShortPredicate(attrName, attrClass, value) { return new ShortPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Short) vertexAttrVal).compareTo(value) <= 0; return ((Short) vertexAttrVal).compareTo(value) <= 0;
...@@ -885,7 +887,7 @@ public class SearchPredicateUtil { ...@@ -885,7 +887,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, Short value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, Short value) {
return new ShortPredicate(attrName, attrClass, value) { return new ShortPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Short) vertexAttrVal).compareTo(value) > 0; return ((Short) vertexAttrVal).compareTo(value) > 0;
...@@ -893,7 +895,7 @@ public class SearchPredicateUtil { ...@@ -893,7 +895,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, Short value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, Short value) {
return new ShortPredicate(attrName, attrClass, value) { return new ShortPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Short) vertexAttrVal).compareTo(value) >= 0; return ((Short) vertexAttrVal).compareTo(value) >= 0;
...@@ -902,7 +904,7 @@ public class SearchPredicateUtil { ...@@ -902,7 +904,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class IntegerPredicate extends VertexAttributePredicate { static abstract class IntegerPredicate extends ElementAttributePredicate {
final Integer value; final Integer value;
IntegerPredicate(String attrName, Class attrClass, Integer value) { IntegerPredicate(String attrName, Class attrClass, Integer value) {
...@@ -916,7 +918,7 @@ public class SearchPredicateUtil { ...@@ -916,7 +918,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Integer value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Integer value) {
return new IntegerPredicate(attrName, attrClass, value) { return new IntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Integer) vertexAttrVal).compareTo(value) == 0; return ((Integer) vertexAttrVal).compareTo(value) == 0;
...@@ -924,7 +926,7 @@ public class SearchPredicateUtil { ...@@ -924,7 +926,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Integer value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Integer value) {
return new IntegerPredicate(attrName, attrClass, value, true) { return new IntegerPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Integer) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Integer) vertexAttrVal).compareTo(value) != 0;
...@@ -932,7 +934,7 @@ public class SearchPredicateUtil { ...@@ -932,7 +934,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, Integer value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, Integer value) {
return new IntegerPredicate(attrName, attrClass, value) { return new IntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Integer) vertexAttrVal).compareTo(value) < 0; return ((Integer) vertexAttrVal).compareTo(value) < 0;
...@@ -940,7 +942,7 @@ public class SearchPredicateUtil { ...@@ -940,7 +942,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, Integer value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, Integer value) {
return new IntegerPredicate(attrName, attrClass, value) { return new IntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Integer) vertexAttrVal).compareTo(value) <= 0; return ((Integer) vertexAttrVal).compareTo(value) <= 0;
...@@ -948,7 +950,7 @@ public class SearchPredicateUtil { ...@@ -948,7 +950,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, Integer value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, Integer value) {
return new IntegerPredicate(attrName, attrClass, value) { return new IntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Integer) vertexAttrVal).compareTo(value) > 0; return ((Integer) vertexAttrVal).compareTo(value) > 0;
...@@ -956,7 +958,7 @@ public class SearchPredicateUtil { ...@@ -956,7 +958,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, Integer value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, Integer value) {
return new IntegerPredicate(attrName, attrClass, value) { return new IntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Integer) vertexAttrVal).compareTo(value) >= 0; return ((Integer) vertexAttrVal).compareTo(value) >= 0;
...@@ -965,7 +967,7 @@ public class SearchPredicateUtil { ...@@ -965,7 +967,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class LongPredicate extends VertexAttributePredicate { static abstract class LongPredicate extends ElementAttributePredicate {
final Long value; final Long value;
LongPredicate(String attrName, Class attrClass, Long value) { LongPredicate(String attrName, Class attrClass, Long value) {
...@@ -979,7 +981,7 @@ public class SearchPredicateUtil { ...@@ -979,7 +981,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Long value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Long value) {
return new LongPredicate(attrName, attrClass, value) { return new LongPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Long) vertexAttrVal).compareTo(value) == 0; return ((Long) vertexAttrVal).compareTo(value) == 0;
...@@ -987,7 +989,7 @@ public class SearchPredicateUtil { ...@@ -987,7 +989,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Long value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Long value) {
return new LongPredicate(attrName, attrClass, value, true) { return new LongPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Long) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Long) vertexAttrVal).compareTo(value) != 0;
...@@ -995,7 +997,7 @@ public class SearchPredicateUtil { ...@@ -995,7 +997,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, Long value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, Long value) {
return new LongPredicate(attrName, attrClass, value) { return new LongPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Long) vertexAttrVal).compareTo(value) < 0; return ((Long) vertexAttrVal).compareTo(value) < 0;
...@@ -1003,7 +1005,7 @@ public class SearchPredicateUtil { ...@@ -1003,7 +1005,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, Long value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, Long value) {
return new LongPredicate(attrName, attrClass, value) { return new LongPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Long) vertexAttrVal).compareTo(value) <= 0; return ((Long) vertexAttrVal).compareTo(value) <= 0;
...@@ -1011,7 +1013,7 @@ public class SearchPredicateUtil { ...@@ -1011,7 +1013,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, Long value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, Long value) {
return new LongPredicate(attrName, attrClass, value) { return new LongPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Long) vertexAttrVal).compareTo(value) > 0; return ((Long) vertexAttrVal).compareTo(value) > 0;
...@@ -1019,7 +1021,7 @@ public class SearchPredicateUtil { ...@@ -1019,7 +1021,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, Long value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, Long value) {
return new LongPredicate(attrName, attrClass, value) { return new LongPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Long) vertexAttrVal).compareTo(value) >= 0; return ((Long) vertexAttrVal).compareTo(value) >= 0;
...@@ -1028,7 +1030,7 @@ public class SearchPredicateUtil { ...@@ -1028,7 +1030,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class FloatPredicate extends VertexAttributePredicate { static abstract class FloatPredicate extends ElementAttributePredicate {
final Float value; final Float value;
FloatPredicate(String attrName, Class attrClass, Float value) { FloatPredicate(String attrName, Class attrClass, Float value) {
...@@ -1042,7 +1044,7 @@ public class SearchPredicateUtil { ...@@ -1042,7 +1044,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Float value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Float value) {
return new FloatPredicate(attrName, attrClass, value) { return new FloatPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Float) vertexAttrVal).compareTo(value) == 0; return ((Float) vertexAttrVal).compareTo(value) == 0;
...@@ -1050,7 +1052,7 @@ public class SearchPredicateUtil { ...@@ -1050,7 +1052,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Float value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Float value) {
return new FloatPredicate(attrName, attrClass, value, true) { return new FloatPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Float) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Float) vertexAttrVal).compareTo(value) != 0;
...@@ -1058,7 +1060,7 @@ public class SearchPredicateUtil { ...@@ -1058,7 +1060,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, Float value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, Float value) {
return new FloatPredicate(attrName, attrClass, value) { return new FloatPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Float) vertexAttrVal).compareTo(value) < 0; return ((Float) vertexAttrVal).compareTo(value) < 0;
...@@ -1066,7 +1068,7 @@ public class SearchPredicateUtil { ...@@ -1066,7 +1068,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, Float value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, Float value) {
return new FloatPredicate(attrName, attrClass, value) { return new FloatPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Float) vertexAttrVal).compareTo(value) <= 0; return ((Float) vertexAttrVal).compareTo(value) <= 0;
...@@ -1074,7 +1076,7 @@ public class SearchPredicateUtil { ...@@ -1074,7 +1076,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, Float value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, Float value) {
return new FloatPredicate(attrName, attrClass, value) { return new FloatPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Float) vertexAttrVal).compareTo(value) > 0; return ((Float) vertexAttrVal).compareTo(value) > 0;
...@@ -1082,7 +1084,7 @@ public class SearchPredicateUtil { ...@@ -1082,7 +1084,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, Float value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, Float value) {
return new FloatPredicate(attrName, attrClass, value) { return new FloatPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Float) vertexAttrVal).compareTo(value) >= 0; return ((Float) vertexAttrVal).compareTo(value) >= 0;
...@@ -1091,7 +1093,7 @@ public class SearchPredicateUtil { ...@@ -1091,7 +1093,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class DoublePredicate extends VertexAttributePredicate { static abstract class DoublePredicate extends ElementAttributePredicate {
final Double value; final Double value;
DoublePredicate(String attrName, Class attrClass, Double value) { DoublePredicate(String attrName, Class attrClass, Double value) {
...@@ -1105,7 +1107,7 @@ public class SearchPredicateUtil { ...@@ -1105,7 +1107,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Double value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Double value) {
return new DoublePredicate(attrName, attrClass, value) { return new DoublePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Double) vertexAttrVal).compareTo(value) == 0; return ((Double) vertexAttrVal).compareTo(value) == 0;
...@@ -1113,7 +1115,7 @@ public class SearchPredicateUtil { ...@@ -1113,7 +1115,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Double value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Double value) {
return new DoublePredicate(attrName, attrClass, value, true) { return new DoublePredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Double) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Double) vertexAttrVal).compareTo(value) != 0;
...@@ -1121,7 +1123,7 @@ public class SearchPredicateUtil { ...@@ -1121,7 +1123,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, Double value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, Double value) {
return new DoublePredicate(attrName, attrClass, value) { return new DoublePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Double) vertexAttrVal).compareTo(value) < 0; return ((Double) vertexAttrVal).compareTo(value) < 0;
...@@ -1129,7 +1131,7 @@ public class SearchPredicateUtil { ...@@ -1129,7 +1131,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, Double value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, Double value) {
return new DoublePredicate(attrName, attrClass, value) { return new DoublePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Double) vertexAttrVal).compareTo(value) <= 0; return ((Double) vertexAttrVal).compareTo(value) <= 0;
...@@ -1137,7 +1139,7 @@ public class SearchPredicateUtil { ...@@ -1137,7 +1139,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, Double value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, Double value) {
return new DoublePredicate(attrName, attrClass, value) { return new DoublePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Double) vertexAttrVal).compareTo(value) > 0; return ((Double) vertexAttrVal).compareTo(value) > 0;
...@@ -1145,7 +1147,7 @@ public class SearchPredicateUtil { ...@@ -1145,7 +1147,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, Double value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, Double value) {
return new DoublePredicate(attrName, attrClass, value) { return new DoublePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Double) vertexAttrVal).compareTo(value) >= 0; return ((Double) vertexAttrVal).compareTo(value) >= 0;
...@@ -1154,7 +1156,7 @@ public class SearchPredicateUtil { ...@@ -1154,7 +1156,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class BytePredicate extends VertexAttributePredicate { static abstract class BytePredicate extends ElementAttributePredicate {
final Byte value; final Byte value;
BytePredicate(String attrName, Class attrClass, Byte value) { BytePredicate(String attrName, Class attrClass, Byte value) {
...@@ -1168,7 +1170,7 @@ public class SearchPredicateUtil { ...@@ -1168,7 +1170,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, Byte value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, Byte value) {
return new BytePredicate(attrName, attrClass, value) { return new BytePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Byte) vertexAttrVal).compareTo(value) == 0; return ((Byte) vertexAttrVal).compareTo(value) == 0;
...@@ -1176,7 +1178,7 @@ public class SearchPredicateUtil { ...@@ -1176,7 +1178,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, Byte value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, Byte value) {
return new BytePredicate(attrName, attrClass, value, true) { return new BytePredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((Byte) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((Byte) vertexAttrVal).compareTo(value) != 0;
...@@ -1184,7 +1186,7 @@ public class SearchPredicateUtil { ...@@ -1184,7 +1186,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, Byte value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, Byte value) {
return new BytePredicate(attrName, attrClass, value) { return new BytePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Byte) vertexAttrVal).compareTo(value) < 0; return ((Byte) vertexAttrVal).compareTo(value) < 0;
...@@ -1192,7 +1194,7 @@ public class SearchPredicateUtil { ...@@ -1192,7 +1194,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, Byte value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, Byte value) {
return new BytePredicate(attrName, attrClass, value) { return new BytePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Byte) vertexAttrVal).compareTo(value) <= 0; return ((Byte) vertexAttrVal).compareTo(value) <= 0;
...@@ -1200,7 +1202,7 @@ public class SearchPredicateUtil { ...@@ -1200,7 +1202,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, Byte value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, Byte value) {
return new BytePredicate(attrName, attrClass, value) { return new BytePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Byte) vertexAttrVal).compareTo(value) > 0; return ((Byte) vertexAttrVal).compareTo(value) > 0;
...@@ -1208,7 +1210,7 @@ public class SearchPredicateUtil { ...@@ -1208,7 +1210,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, Byte value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, Byte value) {
return new BytePredicate(attrName, attrClass, value) { return new BytePredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((Byte) vertexAttrVal).compareTo(value) >= 0; return ((Byte) vertexAttrVal).compareTo(value) >= 0;
...@@ -1217,7 +1219,7 @@ public class SearchPredicateUtil { ...@@ -1217,7 +1219,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class BigIntegerPredicate extends VertexAttributePredicate { static abstract class BigIntegerPredicate extends ElementAttributePredicate {
final BigInteger value; final BigInteger value;
BigIntegerPredicate(String attrName, Class attrClass, BigInteger value) { BigIntegerPredicate(String attrName, Class attrClass, BigInteger value) {
...@@ -1231,7 +1233,7 @@ public class SearchPredicateUtil { ...@@ -1231,7 +1233,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, BigInteger value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, BigInteger value) {
return new BigIntegerPredicate(attrName, attrClass, value) { return new BigIntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigInteger) vertexAttrVal).compareTo(value) == 0; return ((BigInteger) vertexAttrVal).compareTo(value) == 0;
...@@ -1239,7 +1241,7 @@ public class SearchPredicateUtil { ...@@ -1239,7 +1241,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, BigInteger value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, BigInteger value) {
return new BigIntegerPredicate(attrName, attrClass, value, true) { return new BigIntegerPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((BigInteger) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((BigInteger) vertexAttrVal).compareTo(value) != 0;
...@@ -1247,7 +1249,7 @@ public class SearchPredicateUtil { ...@@ -1247,7 +1249,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, BigInteger value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, BigInteger value) {
return new BigIntegerPredicate(attrName, attrClass, value) { return new BigIntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigInteger) vertexAttrVal).compareTo(value) < 0; return ((BigInteger) vertexAttrVal).compareTo(value) < 0;
...@@ -1255,7 +1257,7 @@ public class SearchPredicateUtil { ...@@ -1255,7 +1257,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, BigInteger value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, BigInteger value) {
return new BigIntegerPredicate(attrName, attrClass, value) { return new BigIntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigInteger) vertexAttrVal).compareTo(value) <= 0; return ((BigInteger) vertexAttrVal).compareTo(value) <= 0;
...@@ -1263,7 +1265,7 @@ public class SearchPredicateUtil { ...@@ -1263,7 +1265,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, BigInteger value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, BigInteger value) {
return new BigIntegerPredicate(attrName, attrClass, value) { return new BigIntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigInteger) vertexAttrVal).compareTo(value) > 0; return ((BigInteger) vertexAttrVal).compareTo(value) > 0;
...@@ -1271,7 +1273,7 @@ public class SearchPredicateUtil { ...@@ -1271,7 +1273,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, BigInteger value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, BigInteger value) {
return new BigIntegerPredicate(attrName, attrClass, value) { return new BigIntegerPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigInteger) vertexAttrVal).compareTo(value) >= 0; return ((BigInteger) vertexAttrVal).compareTo(value) >= 0;
...@@ -1280,7 +1282,7 @@ public class SearchPredicateUtil { ...@@ -1280,7 +1282,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class BigDecimalPredicate extends VertexAttributePredicate { static abstract class BigDecimalPredicate extends ElementAttributePredicate {
final BigDecimal value; final BigDecimal value;
BigDecimalPredicate(String attrName, Class attrClass, BigDecimal value) { BigDecimalPredicate(String attrName, Class attrClass, BigDecimal value) {
...@@ -1294,7 +1296,7 @@ public class SearchPredicateUtil { ...@@ -1294,7 +1296,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, BigDecimal value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, BigDecimal value) {
return new BigDecimalPredicate(attrName, attrClass, value) { return new BigDecimalPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigDecimal) vertexAttrVal).compareTo(value) == 0; return ((BigDecimal) vertexAttrVal).compareTo(value) == 0;
...@@ -1302,7 +1304,7 @@ public class SearchPredicateUtil { ...@@ -1302,7 +1304,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, BigDecimal value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, BigDecimal value) {
return new BigDecimalPredicate(attrName, attrClass, value, true) { return new BigDecimalPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((BigDecimal) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((BigDecimal) vertexAttrVal).compareTo(value) != 0;
...@@ -1310,7 +1312,7 @@ public class SearchPredicateUtil { ...@@ -1310,7 +1312,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, BigDecimal value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, BigDecimal value) {
return new BigDecimalPredicate(attrName, attrClass, value) { return new BigDecimalPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigDecimal) vertexAttrVal).compareTo(value) < 0; return ((BigDecimal) vertexAttrVal).compareTo(value) < 0;
...@@ -1318,7 +1320,7 @@ public class SearchPredicateUtil { ...@@ -1318,7 +1320,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, BigDecimal value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, BigDecimal value) {
return new BigDecimalPredicate(attrName, attrClass, value) { return new BigDecimalPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigDecimal) vertexAttrVal).compareTo(value) <= 0; return ((BigDecimal) vertexAttrVal).compareTo(value) <= 0;
...@@ -1326,7 +1328,7 @@ public class SearchPredicateUtil { ...@@ -1326,7 +1328,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, BigDecimal value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, BigDecimal value) {
return new BigDecimalPredicate(attrName, attrClass, value) { return new BigDecimalPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigDecimal) vertexAttrVal).compareTo(value) > 0; return ((BigDecimal) vertexAttrVal).compareTo(value) > 0;
...@@ -1334,7 +1336,7 @@ public class SearchPredicateUtil { ...@@ -1334,7 +1336,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, BigDecimal value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, BigDecimal value) {
return new BigDecimalPredicate(attrName, attrClass, value) { return new BigDecimalPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((BigDecimal) vertexAttrVal).compareTo(value) >= 0; return ((BigDecimal) vertexAttrVal).compareTo(value) >= 0;
...@@ -1343,7 +1345,7 @@ public class SearchPredicateUtil { ...@@ -1343,7 +1345,7 @@ public class SearchPredicateUtil {
} }
} }
static abstract class StringPredicate extends VertexAttributePredicate { static abstract class StringPredicate extends ElementAttributePredicate {
final String value; final String value;
StringPredicate(String attrName, Class attrClass, String value) { StringPredicate(String attrName, Class attrClass, String value) {
...@@ -1357,7 +1359,7 @@ public class SearchPredicateUtil { ...@@ -1357,7 +1359,7 @@ public class SearchPredicateUtil {
this.value = value; this.value = value;
} }
static VertexAttributePredicate getEQPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getEQPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).compareTo(value) == 0; return ((String) vertexAttrVal).compareTo(value) == 0;
...@@ -1365,7 +1367,7 @@ public class SearchPredicateUtil { ...@@ -1365,7 +1367,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNEQPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getNEQPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value, true) { return new StringPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || ((String) vertexAttrVal).compareTo(value) != 0; return vertexAttrVal == null || ((String) vertexAttrVal).compareTo(value) != 0;
...@@ -1373,7 +1375,7 @@ public class SearchPredicateUtil { ...@@ -1373,7 +1375,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getLTPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).compareTo(value) < 0; return ((String) vertexAttrVal).compareTo(value) < 0;
...@@ -1381,7 +1383,7 @@ public class SearchPredicateUtil { ...@@ -1381,7 +1383,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getLTEPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getLTEPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).compareTo(value) <= 0; return ((String) vertexAttrVal).compareTo(value) <= 0;
...@@ -1389,7 +1391,7 @@ public class SearchPredicateUtil { ...@@ -1389,7 +1391,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getGTPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).compareTo(value) > 0; return ((String) vertexAttrVal).compareTo(value) > 0;
...@@ -1397,7 +1399,7 @@ public class SearchPredicateUtil { ...@@ -1397,7 +1399,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getGTEPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getGTEPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).compareTo(value) >= 0; return ((String) vertexAttrVal).compareTo(value) >= 0;
...@@ -1405,7 +1407,7 @@ public class SearchPredicateUtil { ...@@ -1405,7 +1407,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getContainsPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getContainsPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).contains(value); return ((String) vertexAttrVal).contains(value);
...@@ -1413,7 +1415,7 @@ public class SearchPredicateUtil { ...@@ -1413,7 +1415,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getNotContainsPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getNotContainsPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value, true) { return new StringPredicate(attrName, attrClass, value, true) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return vertexAttrVal == null || !((String) vertexAttrVal).contains(value); return vertexAttrVal == null || !((String) vertexAttrVal).contains(value);
...@@ -1421,7 +1423,7 @@ public class SearchPredicateUtil { ...@@ -1421,7 +1423,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getStartsWithPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getStartsWithPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).startsWith(value); return ((String) vertexAttrVal).startsWith(value);
...@@ -1429,7 +1431,7 @@ public class SearchPredicateUtil { ...@@ -1429,7 +1431,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getEndsWithPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getEndsWithPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
return ((String) vertexAttrVal).endsWith(value); return ((String) vertexAttrVal).endsWith(value);
...@@ -1437,7 +1439,7 @@ public class SearchPredicateUtil { ...@@ -1437,7 +1439,7 @@ public class SearchPredicateUtil {
}; };
} }
static VertexAttributePredicate getRegexPredicate(String attrName, Class attrClass, String value) { static ElementAttributePredicate getRegexPredicate(String attrName, Class attrClass, String value) {
return new StringPredicate(attrName, attrClass, value) { return new StringPredicate(attrName, attrClass, value) {
protected boolean compareValue(Object vertexAttrVal) { protected boolean compareValue(Object vertexAttrVal) {
Pattern pattern = Pattern.compile(value, Pattern.CASE_INSENSITIVE); Pattern pattern = Pattern.compile(value, Pattern.CASE_INSENSITIVE);
......
...@@ -370,6 +370,7 @@ public class DiscoveryREST { ...@@ -370,6 +370,7 @@ public class DiscoveryREST {
@QueryParam("sortBy") String sortByAttribute, @QueryParam("sortBy") String sortByAttribute,
@QueryParam("sortOrder") SortOrder sortOrder, @QueryParam("sortOrder") SortOrder sortOrder,
@QueryParam("excludeDeletedEntities") boolean excludeDeletedEntities, @QueryParam("excludeDeletedEntities") boolean excludeDeletedEntities,
@QueryParam("getApproximateCount") boolean getApproximateCount,
@QueryParam("limit") int limit, @QueryParam("limit") int limit,
@QueryParam("offset") int offset) throws AtlasBaseException { @QueryParam("offset") int offset) throws AtlasBaseException {
Servlets.validateQueryParamLength("guid", guid); Servlets.validateQueryParamLength("guid", guid);
...@@ -380,11 +381,11 @@ public class DiscoveryREST { ...@@ -380,11 +381,11 @@ public class DiscoveryREST {
try { try {
if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) { if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "DiscoveryREST.relatedEntitiesSearchUsingGremlin(" + guid + perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "DiscoveryREST.relatedEntitiesSearch(" + guid +
", " + relation + ", " + sortByAttribute + ", " + sortOrder + ", " + excludeDeletedEntities + ", " + ", " + limit + ", " + offset + ")"); ", " + relation + ", " + sortByAttribute + ", " + sortOrder + ", " + excludeDeletedEntities + ", " + getApproximateCount + ", " + limit + ", " + offset + ")");
} }
return discoveryService.searchRelatedEntities(guid, relation, attributes, sortByAttribute, sortOrder, excludeDeletedEntities, limit, offset); return discoveryService.searchRelatedEntities(guid, relation, attributes, sortByAttribute, sortOrder, excludeDeletedEntities, getApproximateCount, limit, offset);
} finally { } finally {
AtlasPerfTracer.log(perf); AtlasPerfTracer.log(perf);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment