ObjectMemberAbstract implements ObjectMember, MetaModelContext.Delegating, FacetHolder.Delegating { public static String deriveMemberNameFrom(final String mixinClassName) { final String deriveFromUnderscore = derive(mixinClassName, "_"); if(!Objects.equals(mixinClassName, deriveFromUnderscore)) { return deriveFromUnderscore; } final String deriveFromDollar = derive(mixinClassName, "$"); if(!Objects.equals(mixinClassName, deriveFromDollar)) { return deriveFromDollar; } return mixinClassName; } protected  ObjectMemberAbstract(
            final FacetedMethod facetedMethod,
            final FeatureType featureType); @Override String getId(); @Override Identifier getIdentifier(); @Override FeatureType getFeatureType(); FacetedMethod getFacetedMethod(); @Override String getName(); @Override String getDescription(); @Override String getHelp(); @Override boolean isAlwaysHidden(); @Override Consent isVisible(
            final ManagedObject target,
            final InteractionInitiatedBy interactionInitiatedBy,
            final Where where); @Override Consent isUsable(
            final ManagedObject target,
            final InteractionInitiatedBy interactionInitiatedBy,
            final Where where); @Override boolean isAction(); @Override boolean isPropertyOrCollection(); @Override boolean isOneToManyAssociation(); @Override boolean isOneToOneAssociation(); static String deriveMemberNameFrom(final String mixinClassName); @Override String toString(); @Override MetaModelContext getMetaModelContext();  }
@Test public void deriveMemberNameFrom_with_underscore() { final String suffix = ObjectMemberAbstract.deriveMemberNameFrom("Customer_placeOrder"); Assert.assertThat(suffix, CoreMatchers.is(equalTo("placeOrder"))); }
@Test public void deriveMemberNameFrom_with_dollar() { final String suffix = ObjectMemberAbstract.deriveMemberNameFrom("Customer$placeOrder"); Assert.assertThat(suffix, CoreMatchers.is(equalTo("placeOrder"))); }