class 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);

}