Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2006 Henri Sivonen
   * Copyright (c) 2007-2009 Mozilla Foundation
   *
   * Permission is hereby granted, free of charge, to any person obtaining a 
   * copy of this software and associated documentation files (the "Software"), 
   * to deal in the Software without restriction, including without limitation 
   * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
   * and/or sell copies of the Software, and to permit persons to whom the 
  * Software is furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be included in 
  * all copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  * DEALINGS IN THE SOFTWARE.
  */
 
 package org.whattf.datatype;
 
 import java.util.List;
 
Common superclass for HTML5 datatypes. Implements all methods of the Datatype interface and leaves a new checkValid for subclasses to implement.

Author(s):
hsivonen
Version:
$Id$
 
 public abstract class AbstractDatatype implements Datatype {

    
Constructor
 
     AbstractDatatype() {
         super();
     }

    
Calls checkValid(CharSequence literal).

Parameters:
literal the value
context the validation context (ignored by subclasses)
Returns:
true if valid and false if not
See also:
org.relaxng.datatype.Datatype.isValid(java.lang.String,org.relaxng.datatype.ValidationContext)
 
     public final boolean isValid(String literalValidationContext context) {
         try {
             checkValid(literal);
         } catch (DatatypeException e) {
             return false;
         }
         return true;
     }

    
Delegates to checkValid(CharSequence literal).

Parameters:
literal the value
context the validation context (ignored by subclasses)
Throws:
org.relaxng.datatype.DatatypeException if the literal does not conform to the datatype definition
See also:
org.relaxng.datatype.Datatype.checkValid(java.lang.String,org.relaxng.datatype.ValidationContext)
 
     public void checkValid(String literalValidationContext contextthrows DatatypeException {
         checkValid(literal);
     }
 
     public abstract void checkValid(CharSequence literalthrows DatatypeException;
    
    
Merely returns a DatatypeStreamingValidatorImpl.

Parameters:
context the validation context (ignored by subclasses)
Returns:
An unoptimized DatatypeStreamingValidator
See also:
org.relaxng.datatype.Datatype.createStreamingValidator(org.relaxng.datatype.ValidationContext)
 
             ValidationContext context) {
         return new DatatypeStreamingValidatorImpl(this);
     }

    
Implements strict string equality semantics by returning literal itself.

Parameters:
literal the value (get returned)
context ignored
Returns:
the literal that was passed in
See also:
org.relaxng.datatype.Datatype.createValue(java.lang.String,org.relaxng.datatype.ValidationContext)
 
     public Object createValue(String literalValidationContext context) {
        return literal;
    }

    
Implements strict string equality semantics by performing a standard equals check on the arguments.

Parameters:
value1 an object returned by createValue
value2 another object returned by createValue
Returns:
true if the values are equal, false otherwise
See also:
org.relaxng.datatype.Datatype.sameValue(java.lang.Object,java.lang.Object)
    public final boolean sameValue(Object value1Object value2) {
        if (value1 == null) {
            return (value2 == null);
        }
        return value1.equals(value2);
    }

    
Implements strict stirng equality semantics by returning the java.lang.Object-level hashCode of the object.

Parameters:
value an object returned by createValue
Returns:
the hash code
See also:
org.relaxng.datatype.Datatype.valueHashCode(java.lang.Object)
    public final int valueHashCode(Object value) {
        return value.hashCode();
    }

    
Always returns Datatype.ID_TYPE_NULL.

Returns:
Datatype.ID_TYPE_NULL
See also:
org.relaxng.datatype.Datatype.getIdType()
    public final int getIdType() {
        return .;
    }

    
Returns false

    public boolean isContextDependent() {
        return false;
    }

    
Checks if a UTF-16 code unit represents a whitespace character (U+0020, U+0009, U+000C, U+000D or U+000A).

Parameters:
c the code unit
Returns:
true if whitespace, false otherwise
    protected final boolean isWhitespace(char c) {
        return c == ' ' || c == '\t' || c == '\f' || c == '\n' || c == '\r';
    }
    
    protected final boolean isAsciiDigit(char c) {
        return c >= '0' && c <= '9';
    }
    protected static final char toAsciiLowerCase(char c) {
        if (c >= 'A' && c <= 'Z') {
            c += 0x20;
        }
        return c;
    }
    protected static final String toAsciiLowerCase(CharSequence str) {
        if (str == null) {
            return null;
        }
        char[] buf = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 'A' && c <= 'Z') {
                c += 0x20;
            }
            buf[i] = c;
        }
        return new String(buf);
    }
    protected static final char toAsciiUpperCase(char c) {
        if (c >= 'a' && c <= 'z') {
            c -= 0x20;
        }
        return c;
    }
    protected static final String toAsciiUpperCase(CharSequence str) {
        if (str == null) {
            return null;
        }
        char[] buf = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 'a' && c <= 'z') {
                c -= 0x20;
            }
            buf[i] = c;
        }
        return new String(buf);
    }
    protected DatatypeException newDatatypeException(String message) {
        return new Html5DatatypeException(this.getClass(), this.getName(), message);
    }
    protected DatatypeException newDatatypeException(String headString literalString tail) {
        return new Html5DatatypeException(this.getClass(), this.getName(), headliteraltail);
    }
    protected DatatypeException newDatatypeException(String headchar literalString tail) {
        return new Html5DatatypeException(this.getClass(), this.getName(), head, String.valueOf(literal), tail);
    }
    
    protected DatatypeException newDatatypeException(int positionString message) {
        return new Html5DatatypeException(positionthis.getClass(), this.getName(), message);
    }
    protected DatatypeException newDatatypeException(int positionString headString literalString tail) {
        return new Html5DatatypeException(positionthis.getClass(), this.getName(), headliteraltail);
    }
    protected DatatypeException newDatatypeException(int positionString headchar literalString tail) {
        return new Html5DatatypeException(positionthis.getClass(), this.getName(), head, String.valueOf(literal), tail);
    }    
    
    /* for datatype exceptions that are handled as warnings, the following are
     * alternative forms of all the above, with an additional "warning" parameter */
    protected DatatypeException newDatatypeException(String messageboolean warning) {
        return new Html5DatatypeException(this.getClass(), this.getName(), messagewarning);
    }
    protected DatatypeException newDatatypeException(String headString literalString tailboolean warning) {
        return new Html5DatatypeException(this.getClass(), this.getName(), headliteraltailwarning);
    }
    protected DatatypeException newDatatypeException(String headchar literalString tailboolean warning) {
        return new Html5DatatypeException(this.getClass(), this.getName(), head, String.valueOf(literal), tailwarning);
    }
    
    protected DatatypeException newDatatypeException(int positionString messageboolean warning) {
        return new Html5DatatypeException(positionthis.getClass(), this.getName(), messagewarning);
    }
    protected DatatypeException newDatatypeException(int positionString headString literalString tailboolean warning) {
        return new Html5DatatypeException(positionthis.getClass(), this.getName(), headliteraltailwarning);
    }
    protected DatatypeException newDatatypeException(int positionString headchar literalString tailboolean warning) {
        return new Html5DatatypeException(positionthis.getClass(), this.getName(), head, String.valueOf(literal), tailwarning);
    }    
    
    public abstract String getName();
    
    protected List<CharSequenceWithOffsetsplit(CharSequence sequencechar delimiter) {
        int offset = 0;
        for (int i = 0; i < sequence.length(); i++) {
            char c = sequence.charAt(i);
            if (c == delimiter) {
                rv.add(new CharSequenceWithOffset(sequence.subSequence(offseti), offset));
                offset = i + 1;
            }
        }
        rv.add(new CharSequenceWithOffset(sequence.subSequence(offsetsequence.length()), offset));
        return rv;
    }
    
    protected class CharSequenceWithOffset {
        private final CharSequence sequence;
        private final int offset;
        

Parameters:
sequence
offset
        public CharSequenceWithOffset(final CharSequence sequencefinal int offset) {
            this. = sequence;
            this. = offset;
        }
        
Returns the offset.

Returns:
the offset
        public int getOffset() {
            return ;
        }
        
Returns the sequence.

Returns:
the sequence
        public CharSequence getSequence() {
            return ;
        }
    }
New to GrepCode? Check out our FAQ X