@Override final Type asSelf(Concept concept) { return concept.asType(); }
@Override final Type asCurrentBaseType(Concept other) { return other.asType(); }
@Override Label transform(MatchableConcept item) { Concept concept = item.get(); return concept.isType() ? concept.asType().label() : null; } };
@Override public Collection<PropertyExecutor> undefine(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Type type = executor.get(var).asType(); if (!type.isDeleted()) { type.isAbstract(false); } }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(var).build()); }
/** * attempt to infer the relation type of this relationship * @param sub extra instance information to aid entity type inference * @return either this if relation type can't be inferred or a fresh relationship with inferred relationship type */ private RelationshipAtom inferRelationshipType(ConceptMap sub){ if (getTypePredicate() != null) return this; if (sub.containsVar(getPredicateVariable())) return addType(sub.get(getPredicateVariable()).asType()); List<SchemaConcept> relationshipTypes = inferPossibleTypes(sub); if (relationshipTypes.size() == 1) return addType(Iterables.getOnlyElement(relationshipTypes)); return this; }
@Override public Collection<PropertyExecutor> define(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Concept concept = executor.get(var); if (concept.isType()) { concept.asType().isAbstract(true); } else { throw GraqlQueryException.insertAbstractOnNonType(concept.asSchemaConcept()); } }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(var).build()); }
private IsaAtom inferEntityType(ConceptMap sub){ if (getTypePredicate() != null) return this; if (sub.containsVar(getPredicateVariable())) return addType(sub.get(getPredicateVariable()).asType()); return this; }
public static ConceptMethod<Void> setAbstract(boolean isAbstract) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setSetAbstract(isAbstract)) .functionVoid(concept -> concept.asType().setAbstract(isAbstract)) .build(); }
public static HasAtom create(Var var, Var predicateVar, ConceptId predicateId, ReasonerQuery parent) { Label label = parent.tx().getConcept(predicateId).asType().label(); return create(var.has(Graql.label(label)), predicateVar, predicateId, parent); }
public static ConceptMethod<Void> unsetRolePlayedByType(Role role) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setUnsetRolePlayedByType(convert(role))) .functionVoid(concept -> concept.asType().deletePlays(role)) .build(); }
public static ConceptMethod<Void> setAttributeType(AttributeType<?> attributeType) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setSetAttributeType(convert(attributeType))) .functionVoid(concept -> concept.asType().attribute(attributeType)) .build(); }
public static ConceptMethod<Void> setKeyType(AttributeType<?> attributeType) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setSetKeyType(convert(attributeType))) .functionVoid(concept -> concept.asType().key(attributeType)) .build(); }
public static ConceptMethod<Void> unsetKeyType(AttributeType<?> attributeType) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setUnsetKeyType(convert(attributeType))) .functionVoid(concept -> concept.asType().deleteKey(attributeType)) .build(); }
public static ConceptMethod<Void> unsetAttributeType(AttributeType<?> attributeType) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setUnsetAttributeType(convert(attributeType))) .functionVoid(concept -> concept.asType().deleteAttribute(attributeType)) .build(); }
public static ConceptMethod<Void> setRolePlayedByType(Role role) { return ConceptMethod.builder(ConceptResponseType.UNIT) .requestSetter(builder -> builder.setSetRolePlayedByType(convert(role))) .functionVoid(concept -> concept.asType().plays(role)) .build(); }
@Override public Collection<PropertyExecutor> define(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Role role = executor.get(this.role().var()).asRole(); executor.get(var).asType().plays(role); }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(var, role().var()).build()); }
@Override public final Collection<PropertyExecutor> insert(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Type type = executor.get(this.type().var()).asType(); executor.builder(var).isa(type); }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(type().var()).produces(var).build()); }
@Override public Collection<PropertyExecutor> undefine(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Type type = executor.get(var).asType(); Role role = executor.get(this.role().var()).asRole(); if (!type.isDeleted() && !role.isDeleted()) { type.unplay(role); } }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(var, role().var()).build()); }
@Override public Collection<PropertyExecutor> define(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Type entityTypeConcept = executor.get(var).asType(); AttributeType attributeTypeConcept = executor.get(resourceType().var()).asAttributeType(); if (required()) { entityTypeConcept.key(attributeTypeConcept); } else { entityTypeConcept.has(attributeTypeConcept); } }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(var, resourceType().var()).build()); }
@Override public Collection<PropertyExecutor> undefine(Var var) throws GraqlQueryException { PropertyExecutor.Method method = executor -> { Type type = executor.get(var).asType(); AttributeType<?> attributeType = executor.get(resourceType().var()).asAttributeType(); if (!type.isDeleted() && !attributeType.isDeleted()) { if (required()) { type.unkey(attributeType); } else { type.unhas(attributeType); } } }; return ImmutableSet.of(PropertyExecutor.builder(method).requires(var, resourceType().var()).build()); }