RoleDescriptor rd = (RoleDescriptor) o; if (rd.within.is(observable)) { if (contextApplies(rd, scope)) { if (!cnd.containsKey(rd.target)) { cnd.put(rd.target, new ArrayList<RoleDescriptor>());
Collection<IConcept> roles = Roles.getRoles(getObservable().getType()); for (IConcept role : roles) { for (IConcept observableRole : Roles.getImpliedObservableRoles(role)) { .getObservableWithRole(observableRole, contextType);
/** * */ private void validateRoles(KIMScope context) { Collection<IConcept> roles = Roles.getRoles(getObservable().getType()); for (IConcept role : roles) { for (IConcept observableRole : Roles.getImpliedObservableRoles(role)) { /* * abstract roles must be represented in the model. Concrete ones generate * dependencies so they are observed anyway. */ if (observableRole.isAbstract() && !includesRole(observableRole)) { context.error("model must reference the role " + observableRole + " implied by " + role, this.getFirstLineNumber()); } } } }
public static boolean hasRole(ISemantic k, IConcept role) { IKnowledge type = k.getType(); if (!(type instanceof IConcept)) { return false; } for (IConcept c : getRoles(type)) { if (c.is(role)) { return true; } } return false; }
.getRestrictedObservable())); Roles.addRole(trait, k.getConcept(), trg, restricted, context .getNamespace());
observable = Roles.getObservableWithRole(concept, actualContextType);
@Override protected boolean includesRole(IConcept observableRole) { for (int i = 1; i < observables.size(); i++) { if (((KIMObservableSemantics) observables.get(i)).interpretAs != null && ((KIMObservableSemantics) observables.get(i)).interpretAs .is(observableRole)) { return true; } if (NS.contains(observableRole, Roles.getRoles(observables.get(i)))) { return true; } } if (super.includesRole(observableRole)) { return true; } if (observer != null) { if (((KIMObserver) observer).includesRole(observableRole)) { return true; } } return false; }
Roles.addRole(trait, main, trg, restricted, /* prop, */ context .getNamespace());
protected boolean includesRole(IConcept observableRole) { for (IDependency d : getDependencies()) { if ((((KIMDependency) d).interpretAs != null && ((KIMDependency) d).interpretAs.is(observableRole)) || NS.contains(observableRole, Roles.getRoles(d))) { return true; } } return false; }
if (Roles.getRoles(main).contains(role)) { throw new KlabValidationException("concept " + main + " already has role " + role);
for (IConcept c : Roles.getRoles(this.getObservable(), context)) { if (!haveDep(ret, c)) { String fname = CamelCase.toLowerCase(c.getLocalName(), '-');
for (IConcept r : Roles.getRoles(this.semantics, context.getScope())) {
Collection<IConcept> realms = Traits.getRealms(k); Collection<IConcept> attributes = Traits.getAttributes(k); Collection<IConcept> roles = Roles.getRoles(k);