org.nakedobjects.metamodel.spec.NakedObjectSpecification.getAssociations()方法的使用及代码示例

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

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

NakedObjectSpecification.getAssociations介绍

暂无

代码示例

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

private boolean containEnoughFields(Content content) {
  NakedObjectSpecification specification = content.getSpecification();
  NakedObjectAssociation[] associations = specification.getAssociations(new AbstractFilter<NakedObjectAssociation>() {
    public boolean accept(NakedObjectAssociation t) {
      return t.isOneToManyAssociation() || (t.isOneToOneAssociation() && !((OneToOneAssociation)t).getSpecification().isParseable());
    }
  });
//    int threshold = NakedObjectsContext.getConfiguration().getInteger(Properties.PROPERTY_BASE + "tree-count-threshold", 2);
  return associations.length >= 1;
}

代码示例来源:origin: org.nakedobjects/remoting

private NakedObjectAssociation[] loadFields(final NakedObjectSpecification specification) {
  final NakedObjectAssociation[] originalFields = specification.getAssociations();
  final Vector sorted = new Vector(originalFields.length);
  outer: for (int i = 0; i < originalFields.length; i++) {
    final String fieldId = originalFields[i].getId();
    for (int j = 0; j < sorted.size(); j++) {
      final NakedObjectAssociation sortedElement = (NakedObjectAssociation) sorted.elementAt(j);
      final String sortedFieldId = sortedElement.getId();
      if (sortedFieldId.compareTo(fieldId) > 0) {
        sorted.insertElementAt(originalFields[i], j);
        continue outer;
      }
    }
    sorted.addElement(originalFields[i]);
  }
  final NakedObjectAssociation[] fields = new NakedObjectAssociation[originalFields.length];
  sorted.copyInto(fields);
  return fields;
}

代码示例来源:origin: org.nakedobjects.core/remoting

private NakedObjectAssociation[] loadFields(final NakedObjectSpecification specification) {
  final NakedObjectAssociation[] originalFields = specification.getAssociations();
  final Vector sorted = new Vector(originalFields.length);
  outer: for (int i = 0; i < originalFields.length; i++) {
    final String fieldId = originalFields[i].getId();
    for (int j = 0; j < sorted.size(); j++) {
      final NakedObjectAssociation sortedElement = (NakedObjectAssociation) sorted.elementAt(j);
      final String sortedFieldId = sortedElement.getId();
      if (sortedFieldId.compareTo(fieldId) > 0) {
        sorted.insertElementAt(originalFields[i], j);
        continue outer;
      }
    }
    sorted.addElement(originalFields[i]);
  }
  final NakedObjectAssociation[] fields = new NakedObjectAssociation[originalFields.length];
  sorted.copyInto(fields);
  return fields;
}

代码示例来源:origin: org.nakedobjects.core/runtime

private void updateFields(final NakedObject object, final Data state) {
  final ObjectData od = (ObjectData) state;
  final NakedObjectAssociation[] fields = object.getSpecification().getAssociations();
  for (int i = 0; i < fields.length; i++) {
    if (fields[i].isDerived()) {
      continue;
    }
    updateField(object, od, fields[i]);
  }
}

代码示例来源:origin: org.nakedobjects.plugins/htmlviewer-viewer

private static int size(final NakedObject object) {
  final NakedObjectAssociation[] fields = object.getSpecification().getAssociations(
      NakedObjectAssociationFilters.dynamicallyVisible(NakedObjectsContext.getAuthenticationSession(), object));
  return fields.length;
}

代码示例来源:origin: org.nakedobjects.plugins/html-viewer

private static int size(final NakedObject object) {
  final NakedObjectAssociation[] fields = object.getSpecification().getAssociations(
      NakedObjectAssociationFilters.dynamicallyVisible(NakedObjectsContext.getAuthenticationSession(), object));
  return fields.length;
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

public boolean canDisplay(final Content content, ViewRequirement requirement) {
  if (!content.isCollection() || !requirement.is(ViewRequirement.OPEN)) {
    return false;
  } else {
    CollectionContent collectionContent = (CollectionContent) content;
    final NakedObjectSpecification elementSpecification = collectionContent.getElementSpecification();
    final NakedObjectAssociation[] fields = elementSpecification
        .getAssociations(NakedObjectAssociationFilters.STATICALLY_VISIBLE_ASSOCIATIONS);
    for (int i = 0; i < fields.length; i++) {
      if (fields[i].isOneToOneAssociation()) {
        return true;
      }
    }
    return false;
  }
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

@Override
protected ViewAxis axis(Content content) {
  // TODO create axis first, then after view built set up the axis details?
  final NakedObjectSpecification elementSpecification = ((CollectionContent) content).getElementSpecification();
  final NakedObjectAssociation[] accessibleFields = elementSpecification
      .getAssociations(NakedObjectAssociationFilters.STATICALLY_VISIBLE_ASSOCIATIONS);
  final TableAxis tableAxis = new TableAxis(tableFields(accessibleFields, content));
  // TODO make the setting of the column width strategy external so it can be changed
  tableAxis.setupColumnWidths(new TypeBasedColumnWidthStrategy());
  return tableAxis;
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

private NakedObjectAssociation findDate(final View view) {
    final Content c = view.getContent();
    final NakedObject adapter = c.getNaked();
    final NakedObjectSpecification spec = adapter.getSpecification();
    final NakedObjectAssociation[] fields = spec.getAssociations();
    for (int i = 0; i < fields.length; i++) {
      final Facet facet = fields[i].getFacet(DateValueFacet.class);
      if (facet != null) {
        return fields[i];
      }
      /*
       * if(fields[j].getSpecification() ==
       * NakedObjectsContext.getReflector().loadSpecification(DateValue.class)) { date = (DateValue)
       * fields[j].get((NakedObject) adapter).getObject(); break; }
       */
    }
    return null;
  }
}

代码示例来源:origin: org.nakedobjects.core/metamodel

@Override
public Object createObject(CreationMode creationMode) {
  if (cls.isArray()) {
    return Array.newInstance(cls.getComponentType(), 0);
  }
  
  try {
    Object object = getRuntimeContext().instantiate(cls);
    
    if (creationMode == CreationMode.INITIALIZE) {
      final NakedObject adapter = getRuntimeContext().adapterFor(object);
      
      // initialize new object
      final NakedObjectAssociation[] fields = adapter.getSpecification().getAssociations();
      for (int i = 0; i < fields.length; i++) {
        fields[i].toDefault(adapter);
      }
      getRuntimeContext().injectDependenciesInto(object);
      
      CallbackUtils.callCallback(adapter, CreatedCallbackFacet.class);
    }
    return object;
  } catch (final ObjectInstantiationException e) {
    throw new NakedObjectException("Failed to create instance of type " + cls.getName(), e);
  }
}

代码示例来源:origin: org.nakedobjects/metamodel

@Override
public Object createObject(CreationMode creationMode) {
  if (cls.isArray()) {
    return Array.newInstance(cls.getComponentType(), 0);
  }
  
  try {
    Object object = getRuntimeContext().instantiate(cls);
    
    if (creationMode == CreationMode.INITIALIZE) {
      final NakedObject adapter = getRuntimeContext().adapterFor(object);
      
      // initialize new object
      final NakedObjectAssociation[] fields = adapter.getSpecification().getAssociations();
      for (int i = 0; i < fields.length; i++) {
        fields[i].toDefault(adapter);
      }
      getRuntimeContext().injectDependenciesInto(object);
      
      CallbackUtils.callCallback(adapter, CreatedCallbackFacet.class);
    }
    return object;
  } catch (final ObjectInstantiationException e) {
    throw new NakedObjectException("Failed to create instance of type " + cls.getName(), e);
  }
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

public boolean canDisplay(final Content content, ViewRequirement requirement) {
  if (requirement.is(ViewRequirement.CLOSED)) {
    return false;
  } else {
    int collections = 0;
    if (content instanceof ObjectContent) {
      final NakedObject object = content.getNaked();
      final NakedObjectAssociation[] fields = object.getSpecification().getAssociations(
          NakedObjectAssociationFilters.dynamicallyVisible(NakedObjectsContext.getAuthenticationSession(), object));
      for (int i = 0; i < fields.length; i++) {
        if (fields[i].isOneToManyAssociation()) {
          collections++;
        }
      }
    }
    return collections == 1;
  }
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

@Override
public void build(final View view) {
  Assert.assertEquals("ensure the view is the complete decorated view", view.getView(), view);
  final Content content = view.getContent();
  final NakedObject object = ((ObjectContent) content).getObject();
  LOG.debug("build view " + view + " for " + object);
  NakedObjectSpecification spec = object.getSpecification();
  Filter<NakedObjectAssociation> filter = NakedObjectAssociationFilters.dynamicallyVisible(
      NakedObjectsContext.getAuthenticationSession(), object);
  final NakedObjectAssociation[] flds = spec.getAssociations(filter);
  if (view.getSubviews().length == 0) {
    newBuild(view, object, flds);
  } else {
    updateBuild(view, object, flds);
  }
}

代码示例来源:origin: org.nakedobjects.core/runtime

private ObjectData createObjectData(final NakedObject adapter) {
  final NakedObjectSpecification cls = adapter.getSpecification();
  final NakedObjectAssociation[] fields = cls.getAssociations();
  final ObjectData data = new ObjectData(adapter.getOid(), adapter.getResolveState().name(), cls.getFullName());
  for (int i = 0; i < fields.length; i++) {
    if (fields[i].isDerived()) {
      continue;
    }
    createFieldData(adapter, data, fields[i]);
  }
  return data;
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

/**
 * This is only used to control root nodes. Therefore a object tree can only be displayed for an object
 * with fields that are collections.
 */
public boolean canDisplay(final Content content, ViewRequirement requirement) {
  if (content.isObject() && content.getNaked() != null) {
    final NakedObject object = content.getNaked();
    final NakedObjectAssociation[] fields = object.getSpecification().getAssociations(
        NakedObjectAssociationFilters.dynamicallyVisible(NakedObjectsContext.getAuthenticationSession(), object));
    for (int i = 0; i < fields.length; i++) {
      if (fields[i].isOneToManyAssociation()) {
        return true;
      }
    }
  }
  return false;
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

@Override
public int canOpen(final Content content) {
  final NakedObject object = ((ObjectContent) content).getObject();
  final NakedObjectAssociation[] fields = object.getSpecification().getAssociations(
      NakedObjectAssociationFilters.dynamicallyVisible(NakedObjectsContext.getAuthenticationSession(), object));
  for (int i = 0; i < fields.length; i++) {
    if (fields[i].isOneToManyAssociation()) {
      return CAN_OPEN;
    }
    if (  showObjectContents && fields[i].isOneToOneAssociation() &&
      !(SpecificationFacets.isBoundedSet(object.getSpecification()))) {
      return CAN_OPEN;
    }
  }
  return CANT_OPEN;
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

private Content fieldContent(Content content) {
  NakedObjectSpecification spec = content.getSpecification();
  NakedObject target = content.getNaked();
  AuthenticationSession session = NakedObjectsContext.getAuthenticationSession();
  NakedObjectAssociation[] fields = spec.getAssociations(NakedObjectAssociationFilters.dynamicallyVisible(session, target));
  for (NakedObjectAssociation field : fields) {
    if (field.isOneToOneAssociation() && !field.getSpecification().isParseable()) {
      return Toolkit.getContentFactory().createFieldContent(field, target);
    }
  }
  return null;
}

代码示例来源:origin: org.nakedobjects.plugins/htmlviewer-viewer

@Override
protected void doExecute(final Context context, final ViewPane content, final NakedObject adapter, final String field) {
  final String id = context.mapObject(adapter);
  createObjectView(context, adapter, content, id);
  final NakedObjectSpecification specification = adapter.getSpecification();
  // TODO: this test should be done by the ImmutableFacetFactory installing an immutableFacet on every
  // member
  boolean immutable = SpecificationFacets.isAlwaysImmutable(specification)
      || (adapter.isPersistent() && SpecificationFacets.isImmutableOncePersisted(specification));
  boolean allFieldUneditable = true;
  final NakedObjectAssociation[] flds = specification.getAssociations();
  for (int i = 0; i < flds.length; i++) {
    if (flds[i].isUsable(NakedObjectsContext.getAuthenticationSession(), adapter).isAllowed()) {
      allFieldUneditable = false;
      break;
    }
  }
  if (!immutable && !allFieldUneditable) {
    content.add(context.getComponentFactory().createEditOption(id));
  }
  context.setObjectCrumb(adapter);
}

代码示例来源:origin: org.nakedobjects.plugins/html-viewer

@Override
protected void doExecute(final Context context, final ViewPane content, final NakedObject adapter, final String field) {
  final String id = context.mapObject(adapter);
  createObjectView(context, adapter, content, id);
  final NakedObjectSpecification specification = adapter.getSpecification();
  // TODO: this test should be done by the ImmutableFacetFactory installing an immutableFacet on every
  // member
  boolean immutable = SpecificationFacets.isAlwaysImmutable(specification)
      || (adapter.isPersistent() && SpecificationFacets.isImmutableOncePersisted(specification));
  boolean allFieldUneditable = true;
  final NakedObjectAssociation[] flds = specification.getAssociations();
  for (int i = 0; i < flds.length; i++) {
    if (flds[i].isUsable(NakedObjectsContext.getAuthenticationSession(), adapter).isAllowed()) {
      allFieldUneditable = false;
      break;
    }
  }
  if (!immutable && !allFieldUneditable) {
    content.add(context.getComponentFactory().createEditOption(id));
  }
  context.setObjectCrumb(adapter);
}

代码示例来源:origin: org.nakedobjects.plugins/dndviewer

private Consent setFieldOfMatchingType(final NakedObject targetAdapter, final NakedObject sourceAdapter) {
  if (targetAdapter.isTransient() && sourceAdapter.isPersistent()) {
    // TODO: use Facet for this test instead.
    return new Veto("Can't set field in persistent object with reference to non-persistent object");
  }
  final NakedObjectAssociation[] fields = targetAdapter.getSpecification().getAssociations(
      NakedObjectAssociationFilters.dynamicallyVisible(NakedObjectsContext.getAuthenticationSession(), targetAdapter));
  for (final NakedObjectAssociation fld : fields) {
    if (!fld.isOneToOneAssociation()) {
      continue;
    }
    if (!sourceAdapter.getSpecification().isOfType(fld.getSpecification())) {
      continue;
    }
    if (fld.get(targetAdapter) != null) {
      continue;
    }
    final Consent associationValid = ((OneToOneAssociation) fld).isAssociationValid(targetAdapter, sourceAdapter);
    if (associationValid.isAllowed()) {
      return associationValid.setDescription("Set field " + fld.getName());
    }
  }
  // TODO: use Facet for this test instead
  return new Veto(String.format("No empty field accepting object of type %s in %s", sourceAdapter.getSpecification()
      .getSingularName(), title()));
}

相关文章

微信公众号

最新文章

更多