本文整理了Java中org.nakedobjects.metamodel.spec.NakedObjectSpecification.getAssociations()
方法的一些代码示例,展示了NakedObjectSpecification.getAssociations()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。NakedObjectSpecification.getAssociations()
方法的具体详情如下:
包路径:org.nakedobjects.metamodel.spec.NakedObjectSpecification
类名称: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()));
}
内容来源于网络,如有侵权,请联系作者删除!