public NamedFacetAbstract(final String value, final FacetHolder holder) { super(type(), holder, value); } }
/** * Return the default label for this member. This is based on the name of * this member. * * @see #getId() */ @Override public String getName() { final NamedFacet facet = getFacet(NamedFacet.class); final String name = facet.value(); return name != null ? name : defaultName; }
@Override public void process(final ProcessMethodContext processMethodContext) { final String fullMethodName = processMethodContext.getMethod().getName(); final String capitalizedName = fullMethodName.substring(0, 1).toUpperCase() + fullMethodName.substring(1); if (!capitalizedName.startsWith(LOCAL_PREFIX)) { return; } FacetUtil.addFacets(new Facet[] { new ExecutedFacetViaNamingConvention(ExecutedFacet.Where.LOCALLY, processMethodContext.getFacetHolder()), new NamedFacetInferred(capitalizedName.substring(5), processMethodContext.getFacetHolder()) }); }
private void addNamedFacetAndPluralFacetIfRequired() { NamedFacet namedFacet = getFacet(NamedFacet.class); if (namedFacet == null) { namedFacet = new NamedFacetInferred(NameUtils.naturalName(getShortIdentifier()), this); addFacet(namedFacet); } PluralFacet pluralFacet = getFacet(PluralFacet.class); if (pluralFacet == null) { pluralFacet = new PluralFacetInferred(NameUtils.pluralName(namedFacet.value()), this); addFacet(pluralFacet); } }
public void testNamedAnnotationPickedUpOnClass() { final NamedAnnotationOnTypeFacetFactory facetFactory = new NamedAnnotationOnTypeFacetFactory(); facetFactory.setSpecificationLookup(reflector); @Named("some name") class Customer { } facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacetAbstract); final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet; assertEquals("some name", namedFacetAbstract.value()); assertNoMethodsRemoved(); }
/** * Expect to be populated using {@link #setSingularName(String)}, but has * default name as well. */ @Override public String getSingularName() { final NamedFacet namedFacet = getFacet(NamedFacet.class); return namedFacet.value(); }
/** * Must be called after added the debug, exploration etc facets. * * <p> * TODO: remove this hack */ private void attachNamedFacetInferredFromMethodName(final ProcessMethodContext processMethodContext) { final Method method = processMethodContext.getMethod(); final String capitalizedName = NameUtils.capitalizeName(method.getName()); // this is nasty... String name = StringUtils.removePrefix(capitalizedName, ExecutedFacet.Where.LOCAL_PREFIX); name = StringUtils.removePrefix(name, ExecutedFacet.Where.REMOTE_PREFIX); name = StringUtils.removePrefix(name, DEBUG_PREFIX); name = StringUtils.removePrefix(name, EXPLORATION_PREFIX); name = StringUtils.removePrefix(name, ExecutedFacet.Where.LOCAL_PREFIX); name = StringUtils.removePrefix(name, ExecutedFacet.Where.REMOTE_PREFIX); name = NameUtils.naturalName(name); final FacetHolder facetedMethod = processMethodContext.getFacetHolder(); FacetUtil.addFacet(new NamedFacetInferred(name, facetedMethod)); }
public void testNamedAnnotationPickedUpOnActionParameter() { final NamedAnnotationOnParameterFacetFactory facetFactory = new NamedAnnotationOnParameterFacetFactory(); facetFactory.setSpecificationLookup(reflector); class Customer { @SuppressWarnings("unused") public void someAction(@Named("some name") final int x) { } } final Method actionMethod = findMethod(Customer.class, "someAction", new Class[] { int.class }); facetFactory.processParams(new ProcessParameterContext(actionMethod, 0, facetedMethodParameter)); final Facet facet = facetedMethodParameter.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacetAbstract); final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet; assertEquals("some name", namedFacetAbstract.value()); }
private static String nameFor(final ObjectAction noAction) { final String actionName = noAction.getName(); if (actionName != null) { return actionName; } final NamedFacet namedFacet = noAction.getFacet(NamedFacet.class); if (namedFacet != null) { return namedFacet.value(); } return "(no name)"; }
public void testNamedAnnotationPickedUpOnCollection() { final NamedAnnotationOnMemberFacetFactory facetFactory = new NamedAnnotationOnMemberFacetFactory(); facetFactory.setSpecificationLookup(reflector); class Customer { @SuppressWarnings("unused") @Named("some name") public Collection<?> getOrders() { return null; } } final Method actionMethod = findMethod(Customer.class, "getOrders"); facetFactory.process(new ProcessMethodContext(Customer.class, actionMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacetAbstract); final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet; assertEquals("some name", namedFacetAbstract.value()); assertNoMethodsRemoved(); }
@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); }
public void testNamedAnnotationPickedUpOnProperty() { final NamedAnnotationOnMemberFacetFactory facetFactory = new NamedAnnotationOnMemberFacetFactory(); facetFactory.setSpecificationLookup(reflector); class Customer { @SuppressWarnings("unused") @Named("some name") public int getNumberOfOrders() { return 0; } } final Method actionMethod = findMethod(Customer.class, "getNumberOfOrders"); facetFactory.process(new ProcessMethodContext(Customer.class, actionMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacetAbstract); final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet; assertEquals("some name", namedFacetAbstract.value()); assertNoMethodsRemoved(); }
@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)); }
public void testInstallsNamedFacetUsingNameMethodAndRemovesMethod() { final NamedFacetViaNameMethodFacetFactory facetFactory = new NamedFacetViaNameMethodFacetFactory(); facetFactory.setSpecificationLookup(reflector); reflector.setLoadSpecificationStringReturn(voidSpec); final Method actionMethod = findMethod(CustomerStatic.class, "someAction", new Class[] { int.class, Long.class }); final Method nameMethod = findMethod(CustomerStatic.class, "nameSomeAction"); facetFactory.process(new ProcessMethodContext(CustomerStatic.class, actionMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacetAbstract); final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet; assertEquals("Another Name", namedFacetAbstract.value()); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(nameMethod)); }
private void expectPeerToReturnNamedFacet() { context.checking(new Expectations() { { one(mockPeer).getFacet(NamedFacet.class); will(returnValue(mockNamedFacet)); one(mockNamedFacet).value(); will(returnValue("My name")); } }); }
public void testNamedAnnotationPickedUpOnAction() { final NamedAnnotationOnMemberFacetFactory facetFactory = new NamedAnnotationOnMemberFacetFactory(); facetFactory.setSpecificationLookup(reflector); class Customer { @SuppressWarnings("unused") @Named("some name") public void someAction() { } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.process(new ProcessMethodContext(Customer.class, actionMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacetAbstract); final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet; assertEquals("some name", namedFacetAbstract.value()); assertNoMethodsRemoved(); }
@Test public void getName_whenNamedFacetPresent() throws Exception { objectActionParameter = new ObjectActionParameterAbstractToTest(0, parentAction, actionParamPeer); context.checking(new Expectations() { { one(actionParamPeer).getFacet(NamedFacet.class); will(returnValue(namedFacet)); atLeast(1).of(namedFacet).value(); will(returnValue("Some parameter name")); } }); assertThat(objectActionParameter.getName(), is("Some parameter name")); }
public void testProvidesDefaultNameForActionButIgnoresAnyNamedAnnotation() { final ActionInvocationFacetFactory facetFactory = new ActionInvocationFacetFactory(); facetFactory.setSpecificationLookup(reflector); reflector.setLoadSpecificationStringReturn(voidSpec); class Customer { @SuppressWarnings("unused") @Named("Renamed an action with a named annotation") public void anActionWithNamedAnnotation() { } } final Method method = findMethod(Customer.class, "anActionWithNamedAnnotation"); facetFactory.process(new ProcessMethodContext(Customer.class, method, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacet); final NamedFacet namedFacet = (NamedFacet) facet; assertEquals("An Action With Named Annotation", namedFacet.value()); }
public void testPicksUpExplorationPrefixAndSetsNameAppropriatelyAlso() { final ActionInvocationFacetFactory facetFactory = new ActionInvocationFacetFactory(); facetFactory.setSpecificationLookup(reflector); reflector.setLoadSpecificationStringReturn(voidSpec); class Customer { @SuppressWarnings("unused") public void explorationAnActionWithExplorationPrefix() { } } final Method method = findMethod(Customer.class, "explorationAnActionWithExplorationPrefix"); facetFactory.process(new ProcessMethodContext(Customer.class, method, methodRemover, facetedMethod)); Facet facet = facetedMethod.getFacet(ExplorationFacet.class); assertNotNull(facet); assertTrue(facet instanceof ExplorationFacet); facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacet); final NamedFacet namedFacet = (NamedFacet) facet; assertEquals("An Action With Exploration Prefix", namedFacet.value()); }
public void testPicksUpDebugPrefixAndSetsNameAppropriatelyAlso() { final ActionInvocationFacetFactory facetFactory = new ActionInvocationFacetFactory(); facetFactory.setSpecificationLookup(reflector); reflector.setLoadSpecificationStringReturn(voidSpec); class Customer { @SuppressWarnings("unused") public void debugAnActionWithDebugPrefix() { } } final Method method = findMethod(Customer.class, "debugAnActionWithDebugPrefix"); facetFactory.process(new ProcessMethodContext(Customer.class, method, methodRemover, facetedMethod)); Facet facet = facetedMethod.getFacet(DebugFacet.class); assertNotNull(facet); assertTrue(facet instanceof DebugFacet); facet = facetedMethod.getFacet(NamedFacet.class); assertNotNull(facet); assertTrue(facet instanceof NamedFacet); final NamedFacet namedFacet = (NamedFacet) facet; assertEquals("An Action With Debug Prefix", namedFacet.value()); }