~ubuntu-branches/ubuntu/utopic/jing-trang/utopic

« back to all changes in this revision

Viewing changes to mod/convert-to-dtd/src/main/com/thaiopensource/relaxng/output/dtd/AttlistMapper.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.relaxng.output.dtd;
 
2
 
 
3
import com.thaiopensource.relaxng.edit.ElementPattern;
 
4
import com.thaiopensource.relaxng.edit.NameClass;
 
5
import com.thaiopensource.relaxng.edit.NameNameClass;
 
6
 
 
7
import java.util.HashMap;
 
8
import java.util.Map;
 
9
 
 
10
class AttlistMapper {
 
11
  private final Map<ElementPattern, Object> elementToAttlistMap = new HashMap<ElementPattern, Object>();
 
12
  private final Map<String, Object> paramEntityToElementMap = new HashMap<String, Object>();
 
13
 
 
14
  void noteAttribute(ElementPattern e) {
 
15
    elementToAttlistMap.put(e, Boolean.FALSE);
 
16
  }
 
17
 
 
18
  void noteAttributeGroupRef(ElementPattern e, String paramEntityName) {
 
19
    if (e != null) {
 
20
      if (elementToAttlistMap.get(e) != null)
 
21
        elementToAttlistMap.put(e, Boolean.FALSE);
 
22
      else
 
23
        elementToAttlistMap.put(e, paramEntityName);
 
24
    }
 
25
    if (e == null || paramEntityToElementMap.get(paramEntityName) != null)
 
26
      paramEntityToElementMap.put(paramEntityName, Boolean.FALSE);
 
27
    else
 
28
      paramEntityToElementMap.put(paramEntityName, e);
 
29
  }
 
30
 
 
31
  NameNameClass getParamEntityElementName(String name) {
 
32
    Object elem = paramEntityToElementMap.get(name);
 
33
    if (elem == null || elem == Boolean.FALSE)
 
34
      return null;
 
35
    Object tem = elementToAttlistMap.get(elem);
 
36
    if (!name.equals(tem))
 
37
      return null;
 
38
    NameClass nc = ((ElementPattern)elem).getNameClass();
 
39
    if (!(nc instanceof NameNameClass))
 
40
      return null;
 
41
    return (NameNameClass)nc;
 
42
  }
 
43
}