ApplicationFeatureId

Value type representing a namespace, type or member.

This value is Comparable , the implementation of which considers #getSort() (feature) sort , #getNamespace() namespace , #getTypeSimpleName() type simple name and #getLogicalMemberName() member-logical-name .

If the represented member is an action , then #getLogicalMemberName() member-logical-name must not include any parameter list or parentheses. Consequently method overloading is not supported.

If there is a member name clash involving an action and an association , then consequently any permissions defined automatically apply to both and one cannot separate these.

API

ApplicationFeatureId.java
class ApplicationFeatureId {
  public static final ApplicationFeatureId NAMESPACE_DEFAULT;
  ApplicationFeatureId fromIdentifier(Identifier identifier)
  ApplicationFeatureId newFeature(ApplicationFeatureSort featureSort, String qualifiedLogicalName)
  ApplicationFeatureId newFeature(String namespace, String logicalTypeSimpleName, String memberName)
  ApplicationFeatureId newNamespace(String namespace)
  ApplicationFeatureId newNamespace(LogicalType logicalType)     (1)
  ApplicationFeatureId newType(String logicalTypeName)
  ApplicationFeatureId newType(LogicalType logicalType)
  ApplicationFeatureId newMember(LogicalType logicalType, String memberLogicalName)
  ApplicationFeatureId newMember(String logicalTypeName, String memberLogicalName)
  ApplicationFeatureId newMember(String fullyQualifiedLogicalName)
  String title()     (2)
  ApplicationFeatureId getParentTypeFeatureId()     (3)
  String getFullyQualifiedName()
  String getLogicalTypeName()
  ApplicationFeatureId getParentNamespaceFeatureId()     (4)
  String stringify()
  ApplicationFeatureId parse(String stringified)     (5)
  String asEncodedString()
  ApplicationFeatureId parseEncoded(String encodedString)     (6)
  Can<ApplicationFeatureId> getPathIds()
  Can<ApplicationFeatureId> getParentFeatureIds()
  boolean contains(ApplicationFeatureId otherFeatureId)
  int compareTo(ApplicationFeatureId other)
  boolean equals(Object o)
  int hashCode()
  String toString()
  ApplicationFeatureId withNamespace(String namespace)     (7)
  ApplicationFeatureId withLogicalTypeName(String logicalTypeName)     (8)
}
1 newNamespace(LogicalType)

Creates a new ApplicationFeatureId based on the LogicalType#getNamespace() namespace of the provided LogicalType .

2 title()

having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(…​) method, which is otherwise broken in Causeway 1.6.0

3 getParentTypeFeatureId()

The ApplicationFeatureId of the member’s logical type.

4 getParentNamespaceFeatureId()

The ApplicationFeatureId of the parent package of this class or package.

5 parse(String)

Round-trip with #stringify()

6 parseEncoded(String)

Round-trip with #asEncodedString()

7 withNamespace(String)

Returns a new instance that is a clone of this, except for the namespace, which is taken from the argument.

8 withLogicalTypeName(String)

Returns a new instance that is a clone of this feature (expected to be a ApplicationFeatureSort#MEMBER member or ApplicationFeatureSort#TYPE type ), but with the logicalTypeName taken from the argument.

Members

newNamespace(LogicalType)

Creates a new ApplicationFeatureId based on the LogicalType#getNamespace() namespace of the provided LogicalType .

title()

having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(…​) method, which is otherwise broken in Causeway 1.6.0

getParentTypeFeatureId()

The ApplicationFeatureId of the member’s logical type.

getParentNamespaceFeatureId()

The ApplicationFeatureId of the parent package of this class or package.

parse(String)

Round-trip with #stringify()

parseEncoded(String)

Round-trip with #asEncodedString()

withNamespace(String)

Returns a new instance that is a clone of this, except for the namespace, which is taken from the argument.

withLogicalTypeName(String)

Returns a new instance that is a clone of this feature (expected to be a ApplicationFeatureSort#MEMBER member or ApplicationFeatureSort#TYPE type ), but with the logicalTypeName taken from the argument.

If this feature is instead a ApplicationFeatureSort#NAMESPACE namespace then the feature is returned unchanged.

Note: if the feature is a ApplicationFeatureSort#TYPE type , then this method will be the same as if ApplicationFeatureId#newType(String) had been used to create a new instance. The method exists though to provide a standardized way of transforming ApplicationFeatureId s where possible, without the caller having to worry as to what #getSort() sort of feature it is dealing with.