~ubuntu-branches/debian/wheezy/jing-trang/wheezy

« back to all changes in this revision

Viewing changes to datatype-sample/src/com/thaiopensource/datatype/sample/SimpleDatatypeLibrary.java

  • Committer: Bazaar Package Importer
  • Author(s): Samuel Thibault
  • Date: 2009-09-01 15:53:03 UTC
  • Revision ID: james.westby@ubuntu.com-20090901155303-2kweef05h5v9j3ni
Tags: upstream-20090818
ImportĀ upstreamĀ versionĀ 20090818

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package com.thaiopensource.datatype.sample;
 
2
 
 
3
import org.relaxng.datatype.*;
 
4
import org.relaxng.datatype.helpers.ParameterlessDatatypeBuilder;
 
5
import org.relaxng.datatype.helpers.StreamingValidatorImpl;
 
6
 
 
7
public abstract class SimpleDatatypeLibrary implements Datatype,
 
8
                                                       DatatypeLibrary,
 
9
                                                       DatatypeLibraryFactory {
 
10
  private final String uri;
 
11
  private final String localName;
 
12
  private final DatatypeBuilder datatypeBuilder;
 
13
 
 
14
  protected SimpleDatatypeLibrary(String uri, String localName) {
 
15
    this.uri = uri;
 
16
    this.localName = localName;
 
17
    this.datatypeBuilder = new ParameterlessDatatypeBuilder(this);
 
18
  }
 
19
 
 
20
  public DatatypeLibrary createDatatypeLibrary(String uri) {
 
21
    return this.uri.equals(uri) ? this : null;
 
22
  }
 
23
 
 
24
  public DatatypeBuilder createDatatypeBuilder(String localName)
 
25
    throws DatatypeException {
 
26
    if (!this.localName.equals(localName))
 
27
      throw new DatatypeException();
 
28
    return datatypeBuilder;
 
29
  }
 
30
 
 
31
  public Datatype createDatatype(String localName)
 
32
    throws DatatypeException {
 
33
    return createDatatypeBuilder(localName).createDatatype();
 
34
  }
 
35
 
 
36
  protected abstract boolean isValid(String literal);
 
37
 
 
38
  public void checkValid(String literal, ValidationContext context)
 
39
    throws DatatypeException {
 
40
    if (!isValid(literal, context))
 
41
      throw new DatatypeException();
 
42
  }
 
43
 
 
44
  public boolean isValid(String literal, ValidationContext context) {
 
45
    return isValid(literal);
 
46
  }
 
47
 
 
48
  public DatatypeStreamingValidator createStreamingValidator(ValidationContext context) {
 
49
    return new StreamingValidatorImpl(this, context);
 
50
  }
 
51
 
 
52
  public Object createValue(String literal, ValidationContext context) {
 
53
    if (!isValid(literal, context))
 
54
      return null;
 
55
    return literal;
 
56
  }
 
57
 
 
58
  public boolean sameValue(Object obj1, Object obj2) {
 
59
    return obj1.equals(obj2);
 
60
  }
 
61
 
 
62
  public int valueHashCode(Object obj) {
 
63
    return obj.hashCode();
 
64
  }
 
65
 
 
66
  public int getIdType() {
 
67
    return ID_TYPE_NULL;
 
68
  }
 
69
 
 
70
  public boolean isContextDependent() {
 
71
    return false;
 
72
  }
 
73
}