@Override public boolean accept(final ObjectActionParameter t) { return equalsShortIdentifier(t.getSpecification(), getSpecification()); }
@Override public ObjectAdapter[] getChoices(final ObjectAdapter adapter) { final List<ObjectAdapter> parameterChoices = Lists.newArrayList(); final ActionParameterChoicesFacet choicesFacet = getFacet(ActionParameterChoicesFacet.class); if (choicesFacet != null) { final Object[] choices = choicesFacet.getChoices(parentAction.realTarget(adapter)); checkChoicesType(getSpecificationLookup(), choices, getSpecification()); for (final Object choice : choices) { parameterChoices.add(getAdapterMap().adapterFor(choice)); } } if (parameterChoices.size() == 0 && BoundedFacetUtils.isBoundedSet(getSpecification())) { addParameterChoicesForBounded(parameterChoices); } return parameterChoices.toArray(new ObjectAdapter[0]); }
@Override public boolean accept(final ObjectActionParameter t) { return equalsShortIdentifier(t.getSpecification(), getSpecification()); }
private <T> void addParameterChoicesForBounded(final List<ObjectAdapter> parameterChoices) { final Query<T> query = new QueryFindAllInstances<T>(getSpecification().getFullIdentifier()); final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query); for (final ObjectAdapter choiceAdapter : allInstancesAdapter) { parameterChoices.add(choiceAdapter); } }
@Override public String getName() { final NamedFacet facet = getFacet(NamedFacet.class); if (facet != null && facet.value() != null) { return facet.value(); } final String name = getSpecification().getSingularName(); final List<ObjectActionParameter> parameters = getAction().getParameters(new Filter<ObjectActionParameter>() { @Override public boolean accept(final ObjectActionParameter t) { return equalsShortIdentifier(t.getSpecification(), getSpecification()); } protected boolean equalsShortIdentifier(final ObjectSpecification spec1, final ObjectSpecification spec2) { return spec1.getShortIdentifier().toLowerCase().equals(spec2.getShortIdentifier().toLowerCase()); } }); if (parameters.size() == 1) { return name; } final int indexOf = parameters.indexOf(this); return name + " " + (indexOf + 1); }
@Override public String getId() { final NamedFacet facet = getFacet(NamedFacet.class); if (facet != null && facet.value() != null) { return StringUtils.camelLowerFirst(facet.value()); } final String name = getSpecification().getSingularName(); final List<ObjectActionParameter> parameters = this.getAction().getParameters(new Filter<ObjectActionParameter>() { @Override public boolean accept(final ObjectActionParameter t) { return equalsShortIdentifier(t.getSpecification(), getSpecification()); } protected boolean equalsShortIdentifier(final ObjectSpecification spec1, final ObjectSpecification spec2) { return spec1.getShortIdentifier().toLowerCase().equals(spec2.getShortIdentifier().toLowerCase()); } }); if (parameters.size() == 1) { return StringUtils.camelLowerFirst(name); } final int indexOf = parameters.indexOf(this); return StringUtils.camelLowerFirst(name + (indexOf + 1)); }
@Override public ObjectAdapter getDefault(final ObjectAdapter adapter) { if (parentAction.isContributed() && adapter != null) { if (adapter.getSpecification().isOfType(getSpecification())) { return adapter; } } final ActionParameterDefaultsFacet defaultsFacet = getFacet(ActionParameterDefaultsFacet.class); if (defaultsFacet != null) { final Object dflt = defaultsFacet.getDefault(parentAction.realTarget(adapter)); if (dflt == null) { // it's possible that even though there is a default facet, when // invoked it // is unable to return a default. return null; } return getAdapterMap().adapterFor(dflt); } return null; }