org.nakedobjects.noa.spec.NakedObjectSpecification类的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(14.0k)|赞(0)|评价(0)|浏览(74)

本文整理了Java中org.nakedobjects.noa.spec.NakedObjectSpecification类的一些代码示例,展示了NakedObjectSpecification类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。NakedObjectSpecification类的具体详情如下:
包路径:org.nakedobjects.noa.spec.NakedObjectSpecification
类名称:NakedObjectSpecification

NakedObjectSpecification介绍

暂无

代码示例

代码示例来源:origin: org.nakedobjects/nos-objectstore-xml

Data(NakedObjectSpecification type, SerialOid oid, FileVersion version) {
  this.type = type.getFullName();
  this.oid = oid;
  this.version = version;
}

代码示例来源:origin: org.nakedobjects/nos-objectstore-hibernate

/**
 * Recursively go thru all subclasses and create a hierarchy of PersistentNakedClass objects to map them.
 */
private void buildClassHierachy(final NakedObjectSpecification parentSpec, final PersistentNakedClass parentPersistentClass) {
  final NakedObjectSpecification[] childSpecs = parentSpec.subclasses();
  for (int i = 0; i < childSpecs.length; i++) {
    final NakedObjectSpecification childSpec = childSpecs[i];
    if (childSpec.getType() == NakedObjectSpecification.VALUE || childSpec.persistable() == Persistable.TRANSIENT) {
      continue;
    }
    final String childClassname = childSpec.getFullName();
    PersistentNakedClass childPersistentClass = null;
    if (childSpec.getFields().length > 0) {
      try {
        final Class cls = Class.forName(childClassname);
        if (cls.isArray()) {
          continue;
        }
      } catch (ClassNotFoundException e) {
        throw new NakedObjectRuntimeException(e);
      }
      childPersistentClass = new PersistentNakedClass(childSpec, parentPersistentClass);
      classes.put(childSpec.getFullName(), childPersistentClass);
    }
    buildClassHierachy(childSpec, childPersistentClass == null ? parentPersistentClass : childPersistentClass);
  }
}

代码示例来源:origin: org.nakedobjects/nos-viewer-dnd

private NakedObjectField fieldFromActualSpec(NakedObjectSpecification spec, NakedObjectField field) {
  String fieldName = field.getId();
  return spec.getField(fieldName);
}

代码示例来源:origin: org.nakedobjects/nos-objectstore-hibernate

private boolean subclassesImplementOnlyThisInterface(
    final NakedObjectSpecification persistentClass,
    final NakedObjectSpecification interfaceToCheck) {
  final NakedObjectSpecification[] childSpecs = persistentClass.subclasses();
  for (int i = 0; i < childSpecs.length; i++) {
    final NakedObjectSpecification childSpec = childSpecs[i];
    if (childSpec.getType() == NakedObjectSpecification.VALUE || childSpec.persistable() == Persistable.TRANSIENT) {
      continue;
    }
    final NakedObjectSpecification[] implementedInterfaces = childSpec.interfaces();
    if (implementedInterfaces.length == 0) {
      continue;
    } else if (implementedInterfaces.length > 1) {
      return false;
    }
    if (!implementedInterfaces[0].getFullName().equals(interfaceToCheck.getFullName())) {
      return false;
    }
    return subclassesImplementOnlyThisInterface(childSpec, interfaceToCheck);
  }
  return true;
}

代码示例来源:origin: org.nakedobjects/nos-viewer-dnd

public Consent canSet(final NakedObject dragSource) {
  if (dragSource.getSpecification().isOfType(specification)) {
    return Allow.DEFAULT;
  } else {
    return new Veto("Object must be " + specification.getShortName());
  }
}

代码示例来源:origin: org.nakedobjects/nof-utilities

Element element = schema.createElement(getXmlDocument(), nos.getShortName(), nos.getFullName(), nos.getSingularName(),
    nos.getPluralName());
nofMeta.appendNofTitle(element, object.titleString());
NakedObjectField[] fields = nos.getFields();
LOG.debug("objectToElement(NO): processing fields");
eachField: for (int i = 0; i < fields.length; i++) {
    if (fieldNos != null && fieldNos.getFullName() != null && fieldNos.getFullName().endsWith("XmlValue")) {
      continue eachField;
      nofMeta.setAttributesForValue(xmlValueElement, valueNos.getShortName());
    String fullyQualifiedClassName = nos.getFullName();
        .getSpecification().getFullName(), extensionsFor(oneToOneAssociation));
      collection = (NakedCollection) oneToManyAssociation.get(object);
      NakedObjectSpecification referencedTypeNos = collection.getElementSpecification();
      String fullyQualifiedClassName = referencedTypeNos.getFullName();
        .getSpecification().getFullName(), extensionsFor(oneToManyAssociation));

代码示例来源:origin: org.nakedobjects/nof-persistor

private void setupReferencedObjects(final NakedObject object, final Vector all) {
  if (true)
    return;
  if (object == null || all.contains(object)) {
    return;
  }
  all.addElement(object);
  NakedObjectsContext.getObjectLoader().start(object, ResolveState.RESOLVING);
  NakedObjectField[] fields = object.getSpecification().getFields();
  for (int i = 0; i < fields.length; i++) {
    NakedObjectField field = fields[i];
    if (field.isCollection()) {
      NakedCollection col = (NakedCollection) field.get(object);
      for (Enumeration e = col.elements(); e.hasMoreElements();) {
        NakedObject element = (NakedObject) e.nextElement();
        setupReferencedObjects(element, all);
      }
    } else if (field.isObject()) {
      NakedObject fieldContent = (NakedObject) field.get(object);
      setupReferencedObjects(fieldContent, all);
    }
  }
  NakedObjectsContext.getObjectLoader().end(object);
}

代码示例来源:origin: org.nakedobjects/nof-reflector-core

public void debugData(final DebugString str) {
  reflectionPeerBuilder.debugData(str);
  str.appendTitle("Specifications");
  NakedObjectSpecification[] specs = allSpecifications();
  for (int i = 0; i < specs.length; i++) {
    NakedObjectSpecification specification = specs[i];
    str.append(Features.isAbstract(specification) ? "A" : ".");
    str.append(Features.isAggregated(specification) ? "G" : ".");
    str.append(Features.isService(specification) ? "S" : ".");
    str.append(Features.isBoundedSet(specification) ? "B" : ".");
    int type = specification.getType();
    str.append(type == NakedObjectSpecification.COLLECTION ? "C" : ".");
    str.append(type == NakedObjectSpecification.OBJECT ? "O" : ".");
    str.append(type == NakedObjectSpecification.VALUE ? "V" : ".");
    str.append("  ");
    str.append(specification.getShortName());
    str.append("  [fqc=");
    str.append(specification.getFullName());
    str.append(",type=");
    str.append(specification.getClass().getName());
    str.appendln("]");
  }
}

代码示例来源:origin: org.nakedobjects/nof-utilities

private ObjectData createObjectData(final NakedObject object) {
  NakedObjectSpecification cls = object.getSpecification();
  NakedObjectField[] fields = cls.getFields();
  ObjectData data = new ObjectData(object.getOid(), object.getResolveState().name(), cls.getFullName());
  for (int i = 0; i < fields.length; i++) {
    if (fields[i].isPersisted()) {
      createFieldData(object, data, fields[i]);
    }
  }
  return data;
}

代码示例来源:origin: org.nakedobjects/no-architecture

public boolean accept(NakedObjectActionParameter parameter) {
    return parameter.getSpecification().getType() == HasType.OBJECT;
  }
};

代码示例来源:origin: org.nakedobjects/nof-persistor

/**
 * Checks whether there are any instances of the specified type. The object store should look for
 * instances of the type represented by <variable>type </variable> and return <code>true</code> if there
 * are, or <code>false</code> if there are not.
 */
public boolean hasInstances(final NakedObjectSpecification specification, final boolean includeSubclasses) {
  LOG.info("hasInstances of " + specification.getShortName());
  return objectStore.hasInstances(specification, includeSubclasses);
}

代码示例来源:origin: org.nakedobjects/nos-objectstore-hibernate

private void checkInverseAssociations() {
  for (Iterator<PersistentNakedClass> iter = classes.values().iterator(); iter.hasNext();) {
    PersistentNakedClass persistentClass = iter.next();
    NakedObjectField[] fields = persistentClass.getUniqueFields();
    for (int i = 0; i < fields.length; i++) {
      if (fields[i].isValue() || !fields[i].isPersisted()) {
        continue;
      }
      PersistentNakedClass associatedClass = getPersistentClass(fields[i].getSpecification().getFullName());
      if (associatedClass == null) {
        continue;
      }
      String inverse = getInverse(persistentClass, fields[i].getId());
      if (inverse != null) {
        NakedObjectField associatedField = associatedClass.getSpecification().getField(inverse);
        Association association = new Association(associatedClass, associatedField, false);
        persistentClass.addAssociation(fields[i].getId(), association);
        Association reverseAssociation = new Association(persistentClass, fields[i], true);
        associatedClass.addAssociation(inverse, reverseAssociation);
      }
    }
  }
}

代码示例来源:origin: org.nakedobjects/nos-viewer-dnd

public Consent canSet(final NakedObject object) {
  NakedObjectSpecification targetType = getOneToOneAssociation().getSpecification();
  NakedObjectSpecification spec = object.getSpecification();
  if (isEditable().isVetoed()) {
    return isEditable();
  }
  if (!spec.isOfType(targetType)) {
    return new Veto("Can only drop objects of type " + targetType.getSingularName());
  }
  if (getParent().getResolveState().isPersistent() && object.getResolveState().isTransient()) {
    return new Veto("Can't drop a non-persistent into this persistent object");
  }
  // if (object instanceof Aggregated) {
  // Aggregated aggregated = ((Aggregated) object);
  // if (aggregated.isAggregated() && aggregated.parent() != getParent()) {
  if (Features.isAggregated(spec) && spec.getAggregate(object) != getParent()) {
    return new Veto("Object is already associated with another object: " + spec.getAggregate(object));
  }
  // }
  Consent perm = getOneToOneAssociation().isAssociationValid(getParent(), object);
  return perm;
}

代码示例来源:origin: org.nakedobjects/nof-reflector-core

private synchronized void clearChanges() {
  if (checkObjectsForDirtyFlag) {
    LOG.debug("clearing changed objects");
    Enumeration e = NakedObjectsContext.getObjectLoader().getIdentifiedObjects();
    while (e.hasMoreElements()) {
      Object o = e.nextElement();
      if (o instanceof NakedObject) {
        NakedObject object = (NakedObject) o;
        if (object.getSpecification().isDirty(object)) {
          LOG.debug("  found dirty object " + object);
          object.getSpecification().clearDirty(object);
        }
      }
    }
  }
}

代码示例来源:origin: org.nakedobjects/nof-reflector-core

public String[] getParameterNames() {
  String[] names = reflectiveAdapter.getParameterNames();
  NakedObjectSpecification[] parameterTypes = getParameterTypes();
  if (names == null) {
    names = new String[parameterTypes.length];
    for (int i = 0; i < parameterTypes.length; i++) {
      names[i] = parameterTypes[i].getSingularName();
    }
  } else {
    for (int i = 0; i < names.length; i++) {
      names[i] = names[i] == null ? parameterTypes[i].getSingularName() : names[i];
    }
  }
  return names;
}

代码示例来源:origin: org.nakedobjects/nos-viewer-dnd

public String getDescription() {
  String specName = getSpecification().getSingularName();
  String objectTitle = getObject().titleString();
  return specName + (specName.equalsIgnoreCase(objectTitle) ? "" : ": " + objectTitle) + " "
      + getSpecification().getDescription();
}

代码示例来源:origin: org.nakedobjects/nof-reflector-core

private NakedObjectMember getMember(final String memberName) {
  final MemberIdentifier id = MemberIdentifierImpl.fromIdentityString(memberName);
  final NakedObjectSpecification specification = NakedObjectsContext.getReflector().loadSpecification(id.getClassName());
  NakedObjectMember member;
  if (id.isField()) {
    member = (NakedObjectMember) specification.getField(id.getName());
    if (member == null) {
      throw new IllegalRequestException("No field found for id " + id);
    }
  } else {
    member = (NakedObjectMember) specification.getObjectAction(NakedObjectAction.USER, id.getName(), id
        .getParameterSpecifications());
    if (member == null) {
      throw new IllegalRequestException("No user action found for id " + id);
    }
  }
  return member;
}

代码示例来源:origin: org.nakedobjects/nos-viewer-dnd

private Consent setFieldOfMatchingType(final NakedObject target, final NakedObject source) {
  if (target.getResolveState().isTransient() && source.getResolveState().isPersistent()) {
    return new Veto("Can't set field in persistent object with reference to non-persistent object");
  } else {
    NakedObjectField[] fields = target.getSpecification().getDynamicallyVisibleFields(target);
    for (int i = 0; i < fields.length; i++) {
      NakedObjectField fld = fields[i];
      if (fld.isObject() && source.getSpecification().isOfType(fld.getSpecification())) {
        if (fld.get(target) == null
            && ((OneToOneAssociation) fld).isAssociationValid(target, source).isAllowed()) {
          return new Allow("Set field " + fld.getName());
        }
      }
    }
    return new Veto("No empty field accepting object of type " + source.getSpecification().getSingularName()
        + " in " + title());
  }
}

代码示例来源:origin: org.nakedobjects/nos-viewer-dnd

public static void addObjectMenuOptions(final NakedReference object, final UserActionSet options) {
  if (object != null) {
    NakedObjectAction[] actions1 = object.getSpecification().getObjectActions(NakedObjectAction.USER);
    NakedObjectAction[] actions2 = object.getSpecification().getObjectActions(NakedObjectAction.EXPLORATION);
    NakedObjectAction[] actions3 = object.getSpecification().getObjectActions(NakedObjectAction.DEBUG);
    NakedObjectAction[] actions = new NakedObjectAction[actions1.length + actions2.length + actions3.length];
    System.arraycopy(actions1, 0, actions, 0, actions1.length);
    System.arraycopy(actions2, 0, actions, actions1.length, actions2.length);
    System.arraycopy(actions3, 0, actions, actions1.length + actions2.length, actions3.length);
    menuOptions(actions, object, options);
    Oid oid = object.getOid();
    boolean isPersistent = oid != null && !oid.isTransient();
    if (!(Features.isService(object.getSpecification())) && !(object.getObject() instanceof InstanceCollectionVector)
        && isPersistent) {
      options.add(new DisposeObjectOption());
    }
  }
}

代码示例来源:origin: org.nakedobjects/nof-reflector-core

public NakedObjectAction[] getClassActions(final NakedObjectAction.Type type) {
  Object[] services = NakedObjectsContext.getObjectLoader().getServices();
  List relatedActions = new ArrayList();
  for (int i = 0; i < services.length; i++) {
    NakedObject serviceAdapter = NakedObjectsContext.getObjectLoader().getAdapterFor(services[i]);
    NakedObjectAction[] serviceActions = serviceAdapter.getSpecification().getObjectActions(type);
    List matchingActions = new ArrayList();
    for (int j = 0; j < serviceActions.length; j++) {
      NakedObjectSpecification returnType = serviceActions[j].getReturnType();
      if (returnType instanceof CollectionSpecification) {
        // match up with collections of expected type as well as single instances
        NakedObjectSpecification elementType = ((CollectionSpecification) returnType).getElementType();
        if (elementType.isOfType(this)) {
          matchingActions.add(serviceActions[j]);
        }
      } else if (returnType != null && returnType.isOfType(this)) {
        matchingActions.add(serviceActions[j]);
      }
    }
    if (matchingActions.size() > 0) {
      NakedObjectAction[] asArray = (NakedObjectAction[]) matchingActions.toArray(new NakedObjectAction[matchingActions
          .size()]);
      ActionSet set = new ActionSet("id", serviceAdapter.titleString(), asArray);
      relatedActions.add(set);
    }
  }
  return (NakedObjectAction[]) relatedActions.toArray(new NakedObjectAction[relatedActions.size()]);
}

相关文章