Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/vcardtemp/JcrVcardTempPersistenceManager.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/vcardtemp/JcrVcardTempPersistenceManager.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/vcardtemp/JcrVcardTempPersistenceManager.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/storage/jcr/vcardtemp/JcrVcardTempPersistenceManager.java
 Sat Jun 26 20:39:54 2010
@@ -19,18 +19,18 @@
  */
 package org.apache.vysper.storage.jcr.vcardtemp;
 
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
 import org.apache.vysper.storage.jcr.JcrStorage;
 import org.apache.vysper.storage.jcr.JcrStorageException;
 import org.apache.vysper.xmpp.addressing.Entity;
-import org.apache.vysper.xmpp.protocol.NamespaceURIs;
 import 
org.apache.vysper.xmpp.modules.extension.xep0054_vcardtemp.VcardTempPersistenceManager;
+import org.apache.vysper.xmpp.protocol.NamespaceURIs;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jcr.Session;
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
 /**
  *
  * @author The Apache MINA Project ([email protected])
@@ -57,7 +57,8 @@ public class JcrVcardTempPersistenceMana
 
     public String getVcard(Entity entity) {
         Node entityNode = getEntityNodeSave(entity, false);
-        if (entityNode == null) return null;
+        if (entityNode == null)
+            return null;
         try {
             return entityNode.getProperty("content").getString();
         } catch (RepositoryException e) {
@@ -72,7 +73,8 @@ public class JcrVcardTempPersistenceMana
         } catch (JcrStorageException e) {
             return null;
         }
-        if (entityNode == null) return null;
+        if (entityNode == null)
+            return null;
         return entityNode;
     }
 

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/Entity.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/Entity.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/Entity.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/Entity.java
 Sat Jun 26 20:39:54 2010
@@ -48,7 +48,9 @@ package org.apache.vysper.xmpp.addressin
 public interface Entity {
 
     String getNode();
+
     String getDomain();
+
     String getResource();
 
     /**
@@ -64,6 +66,7 @@ public interface Entity {
     String getCanonicalizedName();
 
     boolean isNodeSet();
+
     boolean isResourceSet();
 
 }

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityConformance.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityConformance.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityConformance.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityConformance.java
 Sat Jun 26 20:39:54 2010
@@ -26,15 +26,19 @@ import org.apache.vysper.compliance.Spec
  *
  * @author The Apache MINA Project ([email protected])
  */
-...@speccompliant(spec="RFC3920", section="3.1")
+...@speccompliant(spec = "RFC3920", section = "3.1")
 public class EntityConformance {
 
     public static boolean checkRFC3920Conformance(Entity entity) {
-        if (!checkPartConformity(entity.getDomain())) return false;
-        if (!checkPartConformity(entity.getNode())) return false;
-        if (!checkPartConformity(entity.getResource())) return false;
+        if (!checkPartConformity(entity.getDomain()))
+            return false;
+        if (!checkPartConformity(entity.getNode()))
+            return false;
+        if (!checkPartConformity(entity.getResource()))
+            return false;
 
-        if (checkPartIsEmpty(entity.getDomain())) return false;
+        if (checkPartIsEmpty(entity.getDomain()))
+            return false;
         return true;
     }
 

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityImpl.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityImpl.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityImpl.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/EntityImpl.java
 Sat Jun 26 20:39:54 2010
@@ -55,8 +55,7 @@ public class EntityImpl implements Entit
         if (entity.contains(CHAR_AT)) {
             String[] parts = entity.split(CHAR_AT);
             if (parts.length != 2)
-                throw new EntityFormatException(
-                        "entity must be of format n...@domain/resource");
+                throw new EntityFormatException("entity must be of format 
n...@domain/resource");
             node = parts[0];
             node = NodePrep.prepare(node);
             entity = parts[1];
@@ -70,7 +69,7 @@ public class EntityImpl implements Entit
         }
         return new EntityImpl(node, domain, resource);
     }
-    
+
     /**
      * Parse entities, throwing {...@link IllegalArgumentException} on format 
errors
      * @param entity
@@ -154,21 +153,18 @@ public class EntityImpl implements Entit
 
         final Entity that = (Entity) o;
 
-        if (domain != null ? !domain.equals(that.getDomain()) : that
-                .getDomain() != null)
+        if (domain != null ? !domain.equals(that.getDomain()) : 
that.getDomain() != null)
             return false;
         if (isNodeSet() != that.isNodeSet())
             return false;
         if (isNodeSet()) {
-            if (node != null ? !node.equals(that.getNode())
-                    : that.getNode() != null)
+            if (node != null ? !node.equals(that.getNode()) : that.getNode() 
!= null)
                 return false;
         }
         if (isResourceSet() != that.isResourceSet())
             return false;
         if (isResourceSet()) {
-            if (resource != null ? !resource.equals(that.getResource()) : that
-                    .getResource() != null)
+            if (resource != null ? !resource.equals(that.getResource()) : 
that.getResource() != null)
                 return false;
         }
 

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/NodePrep.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/NodePrep.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/NodePrep.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/NodePrep.java
 Sat Jun 26 20:39:54 2010
@@ -19,13 +19,13 @@
  */
 package org.apache.vysper.xmpp.addressing.stringprep;
 
-import org.apache.vysper.compliance.SpecCompliant;
-import org.apache.vysper.compliance.SpecCompliant.ComplianceStatus;
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.vysper.compliance.SpecCompliant;
+import org.apache.vysper.compliance.SpecCompliant.ComplianceStatus;
+
 /**
  * This class is used to prepare a Node Identifier for further usage.
  * 
@@ -38,49 +38,48 @@ import java.util.Set;
 @SpecCompliant(spec = "RFC3920", section = "A", status = 
ComplianceStatus.IN_PROGRESS)
 public class NodePrep extends StringPrep {
 
-       private static final NodePrep INSTANCE = new NodePrep();
+    private static final NodePrep INSTANCE = new NodePrep();
 
-       /**
-        * Applies the Nodeprep profile to the given node.
-        * 
-        * @param node
-        *            the node to prepare
-        * @return the prepared node
-        * @throws StringPrepViolationException
-        *             in case the Nodeprep profile can't be applied
-        */
-       public static final String prepare(String node)
-                       throws StringPrepViolationException {
-               return INSTANCE.prepareString(node);
-       }
-
-       private NodePrep() {
-       }
-
-       @Override
-       @SpecCompliant(spec = "RFC3920", section = "A.3", status = 
ComplianceStatus.FINISHED)
-       protected Map<String, String> buildMapping() {
-               Map<String, String> mapping = new HashMap<String, String>();
-               mapping.putAll(StringPrepConstants.B_1_CommonlyMappedtoNothing);
-               
mapping.putAll(StringPrepConstants.B_2_MappingForCaseFoldingUsedWithKFC);
-
-               return mapping;
-       }
-
-       @Override
-       @SpecCompliant(spec = "RFC3920", section = "A.5", status = 
ComplianceStatus.FINISHED)
-       protected Set<String> buildProhibitedSet() {
-               Set<String> prohibited = super.buildProhibitedSet();
-
-               prohibited.add("\\u0022");
-               prohibited.add("\u0026");
-               prohibited.add("\u0027");
-               prohibited.add("\u002F");
-               prohibited.add("\u003A");
-               prohibited.add("\u003C");
-               prohibited.add("\u003E");
-               prohibited.add("\u0040");
+    /**
+     * Applies the Nodeprep profile to the given node.
+     * 
+     * @param node
+     *            the node to prepare
+     * @return the prepared node
+     * @throws StringPrepViolationException
+     *             in case the Nodeprep profile can't be applied
+     */
+    public static final String prepare(String node) throws 
StringPrepViolationException {
+        return INSTANCE.prepareString(node);
+    }
+
+    private NodePrep() {
+    }
+
+    @Override
+    @SpecCompliant(spec = "RFC3920", section = "A.3", status = 
ComplianceStatus.FINISHED)
+    protected Map<String, String> buildMapping() {
+        Map<String, String> mapping = new HashMap<String, String>();
+        mapping.putAll(StringPrepConstants.B_1_CommonlyMappedtoNothing);
+        
mapping.putAll(StringPrepConstants.B_2_MappingForCaseFoldingUsedWithKFC);
+
+        return mapping;
+    }
+
+    @Override
+    @SpecCompliant(spec = "RFC3920", section = "A.5", status = 
ComplianceStatus.FINISHED)
+    protected Set<String> buildProhibitedSet() {
+        Set<String> prohibited = super.buildProhibitedSet();
+
+        prohibited.add("\\u0022");
+        prohibited.add("\u0026");
+        prohibited.add("\u0027");
+        prohibited.add("\u002F");
+        prohibited.add("\u003A");
+        prohibited.add("\u003C");
+        prohibited.add("\u003E");
+        prohibited.add("\u0040");
 
-               return prohibited;
-       }
+        return prohibited;
+    }
 }

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/ResourcePrep.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/ResourcePrep.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/ResourcePrep.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/ResourcePrep.java
 Sat Jun 26 20:39:54 2010
@@ -37,49 +37,46 @@ import org.apache.vysper.compliance.Spec
  */
 public class ResourcePrep extends StringPrep {
 
-       private static final ResourcePrep INSTANCE = new ResourcePrep();
+    private static final ResourcePrep INSTANCE = new ResourcePrep();
 
-       /**
-        * Applies the Resourceprep profile to the given resource.
-        * 
-        * @param resource
-        *            the resource to prepare
-        * @return the prepared resource
-        * @throws StringPrepViolationException
-        *             in case the Resourceprep profile can't be applied
-        */
-       public static String prepare(String resource)
-                       throws StringPrepViolationException {
-               return INSTANCE.prepareString(resource);
-       }
-
-       private ResourcePrep() {
-
-       }
-
-       @Override
-       @SpecCompliant(spec = "RFC3920", section = "B.3", status = 
ComplianceStatus.FINISHED)
-       protected Map<String, String> buildMapping() {
-               return StringPrepConstants.B_1_CommonlyMappedtoNothing;
-       }
-
-       @Override
-       @SpecCompliant(spec = "RFC3920", section = "B.5", status = 
ComplianceStatus.FINISHED)
-       protected Set<String> buildProhibitedSet() {
-               Set<String> set = new HashSet<String>();
-               set.addAll(StringPrepConstants.C_1_2_NonAsciiSpaceCharacters);
-               set.addAll(StringPrepConstants.C_2_1_AsciiControlCharacters);
-               set.addAll(StringPrepConstants.C_2_2_NonAsciiControlCharacters);
-               set.addAll(StringPrepConstants.C_3_PrivateUse);
-               set.addAll(StringPrepConstants.C_4_NonCharacterCodePoints);
-               set.addAll(StringPrepConstants.C_5_SurrogateCodes);
-               set.addAll(StringPrepConstants.C_6_InappropriateForPlainText);
-               set
-                               
.addAll(StringPrepConstants.C_7_InappropriateForCanonicalRepresentation);
-               set
-                               
.addAll(StringPrepConstants.C_8_ChangeDisplayPropertiesOrAreDeprecated);
-               set.addAll(StringPrepConstants.C_9_TaggingCharacters);
+    /**
+     * Applies the Resourceprep profile to the given resource.
+     * 
+     * @param resource
+     *            the resource to prepare
+     * @return the prepared resource
+     * @throws StringPrepViolationException
+     *             in case the Resourceprep profile can't be applied
+     */
+    public static String prepare(String resource) throws 
StringPrepViolationException {
+        return INSTANCE.prepareString(resource);
+    }
+
+    private ResourcePrep() {
+
+    }
+
+    @Override
+    @SpecCompliant(spec = "RFC3920", section = "B.3", status = 
ComplianceStatus.FINISHED)
+    protected Map<String, String> buildMapping() {
+        return StringPrepConstants.B_1_CommonlyMappedtoNothing;
+    }
+
+    @Override
+    @SpecCompliant(spec = "RFC3920", section = "B.5", status = 
ComplianceStatus.FINISHED)
+    protected Set<String> buildProhibitedSet() {
+        Set<String> set = new HashSet<String>();
+        set.addAll(StringPrepConstants.C_1_2_NonAsciiSpaceCharacters);
+        set.addAll(StringPrepConstants.C_2_1_AsciiControlCharacters);
+        set.addAll(StringPrepConstants.C_2_2_NonAsciiControlCharacters);
+        set.addAll(StringPrepConstants.C_3_PrivateUse);
+        set.addAll(StringPrepConstants.C_4_NonCharacterCodePoints);
+        set.addAll(StringPrepConstants.C_5_SurrogateCodes);
+        set.addAll(StringPrepConstants.C_6_InappropriateForPlainText);
+        
set.addAll(StringPrepConstants.C_7_InappropriateForCanonicalRepresentation);
+        
set.addAll(StringPrepConstants.C_8_ChangeDisplayPropertiesOrAreDeprecated);
+        set.addAll(StringPrepConstants.C_9_TaggingCharacters);
 
-               return set;
-       }
+        return set;
+    }
 }

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrep.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrep.java?rev=958281&r1=958280&r2=958281&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrep.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/addressing/stringprep/StringPrep.java
 Sat Jun 26 20:39:54 2010
@@ -39,120 +39,112 @@ import org.apache.vysper.compliance.Spec
 @SpecCompliant(spec = "RFC3454")
 public class StringPrep {
 
-       private Map<String, String> mapping;
-       private Set<String> prohibited;
+    private Map<String, String> mapping;
 
-       /**
-        * Construct.
-        */
-       public StringPrep() {
-               mapping = buildMapping();
-               prohibited = buildProhibitedSet();
-       }
-
-       /**
-        * Prepares the given {...@link String} according to the Stringprep
-        * specification.
-        * 
-        * @param str
-        *            the string to prepare
-        * @return the prepared {...@link String}
-        * @throws StringPrepViolationException
-        *             in case the {...@link String} cannot be prepared
-        */
-       public String prepareString(String str) throws 
StringPrepViolationException {
-               // 1. map -> RFC3454:3
-               for (int i = 0; i < str.length(); i++) {
-                       String codePoint = codePointAt(str, i);
-                       if (mapping.containsKey(codePoint)) {
-                               str = str.replace(codePoint, 
mapping.get(codePoint));
-                       }
-               }
-               // TODO: 2. normalize -> RFC3454:4
-
-               // 3. prohibit -> RFC3454:5
-               for (int i = 0; i < str.length(); i++) {
-                       String codePoint = codePointAt(str, i);
-                       if (prohibited.contains(codePoint)) {
-                               throw new 
StringPrepViolationException(String.format(
-                                               "character '%s' prohibited!", 
codePoint));
-                       }
-               }
-
-               // 4. check bidi -> RFC3454:6
-               boolean containsRAndAlCat = false;
-               boolean containsLCat = false;
-               for (int i = 0; i < str.length()
-                               && NAND(containsRAndAlCat, containsLCat); i++) {
-                       String codePoint = codePointAt(str, i);
-                       containsRAndAlCat |= 
StringPrepConstants.D_1_CharactersWithBiDiPropertiesRorAl
-                                       .contains(codePoint);
-                       containsLCat |= 
StringPrepConstants.D_2_CharactersWithBiDiPropertyL
-                                       .contains(codePoint);
-               }
-               if (containsRAndAlCat && containsLCat) {
-                       throw new StringPrepViolationException("invalid bidi 
sequence");
-               }
-               if (containsRAndAlCat) {
-                       if 
(!StringPrepConstants.D_1_CharactersWithBiDiPropertiesRorAl
-                                       .contains(codePointAt(str, 0))
-                                       || 
!StringPrepConstants.D_1_CharactersWithBiDiPropertiesRorAl
-                                                       
.contains(codePointAt(str, str.length() - 1))) {
-                               throw new StringPrepViolationException("invalid 
bidi sequence");
-                       }
-               }
-
-               return str;
-       }
-
-       /**
-        * Override this method and return a custom map of character mappings to
-        * alter the Stringprep behavior.
-        * 
-        * @return a {...@link Map}<String, String> containing all character 
mappings
-        */
-       protected Map<String, String> buildMapping() {
-               Map<String, String> mapping = new HashMap<String, String>();
-               mapping.putAll(StringPrepConstants.B_1_CommonlyMappedtoNothing);
-               mapping
-                               
.putAll(StringPrepConstants.B_2_MappingForCaseFoldingUsedWithKFC);
-               mapping
-                               
.putAll(StringPrepConstants.B_3_MappingForCaseFoldingWithNoNormalization);
-
-               return mapping;
-       }
-
-       /**
-        * Override this method and return a custom set of prohibited 
characters to
-        * alter the Stringprep behavior.
-        * 
-        * @return a {...@link Set}<String> containing all characters that are
-        *         prohibited
-        */
-       protected Set<String> buildProhibitedSet() {
-               Set<String> prohibited = new HashSet<String>();
-               
prohibited.addAll(StringPrepConstants.C_1_1_AsciiSpaceCharacters);
-               
prohibited.addAll(StringPrepConstants.C_1_2_NonAsciiSpaceCharacters);
-               
prohibited.addAll(StringPrepConstants.C_2_1_AsciiControlCharacters);
-               
prohibited.addAll(StringPrepConstants.C_2_2_NonAsciiControlCharacters);
-               prohibited.addAll(StringPrepConstants.C_3_PrivateUse);
-               
prohibited.addAll(StringPrepConstants.C_4_NonCharacterCodePoints);
-               prohibited.addAll(StringPrepConstants.C_5_SurrogateCodes);
-               
prohibited.addAll(StringPrepConstants.C_6_InappropriateForPlainText);
-               prohibited
-                               
.addAll(StringPrepConstants.C_7_InappropriateForCanonicalRepresentation);
-               prohibited
-                               
.addAll(StringPrepConstants.C_8_ChangeDisplayPropertiesOrAreDeprecated);
-               prohibited.addAll(StringPrepConstants.C_9_TaggingCharacters);
-               return prohibited;
-       }
-
-       private String codePointAt(String node, int i) {
-               int c = node.codePointAt(i);
-               return new String(Character.toChars(c));
-       }
-
-       private boolean NAND(boolean a, boolean b) {
-               return (!(a || b)) || (a ^ b);
-       }
+    private Set<String> prohibited;
+
+    /**
+     * Construct.
+     */
+    public StringPrep() {
+        mapping = buildMapping();
+        prohibited = buildProhibitedSet();
+    }
+
+    /**
+     * Prepares the given {...@link String} according to the Stringprep
+     * specification.
+     * 
+     * @param str
+     *            the string to prepare
+     * @return the prepared {...@link String}
+     * @throws StringPrepViolationException
+     *             in case the {...@link String} cannot be prepared
+     */
+    public String prepareString(String str) throws 
StringPrepViolationException {
+        // 1. map -> RFC3454:3
+        for (int i = 0; i < str.length(); i++) {
+            String codePoint = codePointAt(str, i);
+            if (mapping.containsKey(codePoint)) {
+                str = str.replace(codePoint, mapping.get(codePoint));
+            }
+        }
+        // TODO: 2. normalize -> RFC3454:4
+
+        // 3. prohibit -> RFC3454:5
+        for (int i = 0; i < str.length(); i++) {
+            String codePoint = codePointAt(str, i);
+            if (prohibited.contains(codePoint)) {
+                throw new 
StringPrepViolationException(String.format("character '%s' prohibited!", 
codePoint));
+            }
+        }
+
+        // 4. check bidi -> RFC3454:6
+        boolean containsRAndAlCat = false;
+        boolean containsLCat = false;
+        for (int i = 0; i < str.length() && NAND(containsRAndAlCat, 
containsLCat); i++) {
+            String codePoint = codePointAt(str, i);
+            containsRAndAlCat |= 
StringPrepConstants.D_1_CharactersWithBiDiPropertiesRorAl.contains(codePoint);
+            containsLCat |= 
StringPrepConstants.D_2_CharactersWithBiDiPropertyL.contains(codePoint);
+        }
+        if (containsRAndAlCat && containsLCat) {
+            throw new StringPrepViolationException("invalid bidi sequence");
+        }
+        if (containsRAndAlCat) {
+            if 
(!StringPrepConstants.D_1_CharactersWithBiDiPropertiesRorAl.contains(codePointAt(str,
 0))
+                    || 
!StringPrepConstants.D_1_CharactersWithBiDiPropertiesRorAl.contains(codePointAt(str,
 str
+                            .length() - 1))) {
+                throw new StringPrepViolationException("invalid bidi 
sequence");
+            }
+        }
+
+        return str;
+    }
+
+    /**
+     * Override this method and return a custom map of character mappings to
+     * alter the Stringprep behavior.
+     * 
+     * @return a {...@link Map}<String, String> containing all character 
mappings
+     */
+    protected Map<String, String> buildMapping() {
+        Map<String, String> mapping = new HashMap<String, String>();
+        mapping.putAll(StringPrepConstants.B_1_CommonlyMappedtoNothing);
+        
mapping.putAll(StringPrepConstants.B_2_MappingForCaseFoldingUsedWithKFC);
+        
mapping.putAll(StringPrepConstants.B_3_MappingForCaseFoldingWithNoNormalization);
+
+        return mapping;
+    }
+
+    /**
+     * Override this method and return a custom set of prohibited characters to
+     * alter the Stringprep behavior.
+     * 
+     * @return a {...@link Set}<String> containing all characters that are
+     *         prohibited
+     */
+    protected Set<String> buildProhibitedSet() {
+        Set<String> prohibited = new HashSet<String>();
+        prohibited.addAll(StringPrepConstants.C_1_1_AsciiSpaceCharacters);
+        prohibited.addAll(StringPrepConstants.C_1_2_NonAsciiSpaceCharacters);
+        prohibited.addAll(StringPrepConstants.C_2_1_AsciiControlCharacters);
+        prohibited.addAll(StringPrepConstants.C_2_2_NonAsciiControlCharacters);
+        prohibited.addAll(StringPrepConstants.C_3_PrivateUse);
+        prohibited.addAll(StringPrepConstants.C_4_NonCharacterCodePoints);
+        prohibited.addAll(StringPrepConstants.C_5_SurrogateCodes);
+        prohibited.addAll(StringPrepConstants.C_6_InappropriateForPlainText);
+        
prohibited.addAll(StringPrepConstants.C_7_InappropriateForCanonicalRepresentation);
+        
prohibited.addAll(StringPrepConstants.C_8_ChangeDisplayPropertiesOrAreDeprecated);
+        prohibited.addAll(StringPrepConstants.C_9_TaggingCharacters);
+        return prohibited;
+    }
+
+    private String codePointAt(String node, int i) {
+        int c = node.codePointAt(i);
+        return new String(Character.toChars(c));
+    }
+
+    private boolean NAND(boolean a, boolean b) {
+        return (!(a || b)) || (a ^ b);
+    }
 }


Reply via email to