/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.jena.riot.system;

import org.apache.jena.riot.lang.LabelToNode ;
import org.apache.jena.riot.out.NodeToLabel ;

/** Factory for default policies for syntax labels to and from nodes
 * For label to node (parsing) we use a scalable hashing scheme (MD5 of a seed and the label)
 * 
 * For node to label (pretty labels output), we use a unique tracking scheme. 
 * Fully scalable writers use different polices and don't have short, pretty bNode labels.
 */  
public class SyntaxLabels
{
    /** Default setup - scope by document, relabel BNodes ids to short forms */
    static public NodeToLabel createNodeToLabel() { return NodeToLabel.createScopeByDocument() ; }
    static public LabelToNode createLabelToNode() { return LabelToNode.createScopeByDocumentHash() ; }
    
    /** Round-trip setup */
    static public NodeToLabel createNodeToLabelRT() { return NodeToLabel.createBNodeByLabelEncoded() ; }
    static public LabelToNode createLabelToNodeRT() { return LabelToNode.createUseLabelEncoded() ; }
}

@@ -1098,17 +1098,20 @@
 bel)%0A * 
+%3Cp%3E
 %0A
-
  * For n
@@ -1272,16 +1272,405 @@
 labels.%0A
+ * %3Cp%3E%0A * These should be used pairs:%3Cpre%3E%0A *     createNodeToLabel , createLabelToNode%0A *     createNodeToLabelRT , createLabelToNodeRT%0A *     createNodeToLabelAsGiven , createLabelToNodeAsGiven%0A * %3C/pre%3E%0A * %22AsGiven%22 assumes that he label is valid syntax for the usage, no checking.%0A * %3Cbr/%3E%0A * %22RT%22 encodes the label into characters 0-9,A-Z.%0A * %0A * @see NodeToLabel%0A * @see LabelToNode%0A
  */  %0Apu
@@ -1870,24 +1870,104 @@
 ument() ; %7D%0A
+    /** Default setup - scope by document, relabel BNodes ids to short forms */%0A
     static p
@@ -2191,24 +2191,52 @@
 coded() ; %7D%0A
+    /** Round-trip setup */%0A
     static p
@@ -2324,10 +2324,298 @@
 d() ; %7D%0A
+    %0A    /** Raw string label setup */%0A    static public NodeToLabel createNodeToLabelAsGiven() %7B return NodeToLabel.createBNodeByLabelAsGiven(); %7D %0A    /** Raw string label setup */%0A    static public LabelToNode createLabelToNodeAsGiven() %7B return LabelToNode.createUseLabelAsGiven(); %7D%0A
 %7D%0A

Add "AsGiven" functions. Add more javadoc.