class TextAttributeName extends AttributeName {

    final String completeNamespacedAttributeName;



    static TextAttributeName forName(final String prefix, final String attributeName) {<FILL_FUNCTION_BODY>}


    private TextAttributeName(
            final String prefix, final String attributeName,
            final String completeNamespacedAttributeName,
            final String[] completeAttributeNames) {

        super(prefix, attributeName, completeAttributeNames);
        this.completeNamespacedAttributeName = completeNamespacedAttributeName;

    }


    public String getCompleteNamespacedAttributeName() {
        return this.completeNamespacedAttributeName;
    }

}


        final boolean hasPrefix = prefix != null && prefix.length() > 0;

        final String completeNamespacedAttributeName;
        final String[] completeAttributeNames;

        if (hasPrefix) {

            completeNamespacedAttributeName = prefix + ":" + attributeName;
            completeAttributeNames = new String[] { completeNamespacedAttributeName };

        } else {

            completeNamespacedAttributeName = attributeName;
            completeAttributeNames = new String[] { attributeName };

        }

        return new TextAttributeName(
                prefix, attributeName,
                completeNamespacedAttributeName, completeAttributeNames);

    
<methods>public boolean equals(java.lang.Object) ,public java.lang.String getAttributeName() ,public java.lang.String[] getCompleteAttributeNames() ,public java.lang.String getPrefix() ,public int hashCode() ,public boolean isPrefixed() ,public java.lang.String toString() <variables>protected final non-sealed java.lang.String attributeName,protected final non-sealed java.lang.String[] completeAttributeNames,private final non-sealed int h,protected final non-sealed java.lang.String prefix