File: SyntaxToJavaClass.java

package info (click to toggle)
libspring-ldap-java 1.3.1.RELEASE-4
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 2,876 kB
  • sloc: java: 12,509; xml: 4,104; jsp: 36; makefile: 31; sh: 13
file content (63 lines) | stat: -rw-r--r-- 2,110 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package org.springframework.ldap.odm.tools;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

/**
 * A map from an LDAP syntax to the Java class used to represent it.
 * 
 * @author Paul Harvey <paul.at.pauls-place.me.uk>
 */
/* package */ final class SyntaxToJavaClass {
    public final static class ClassInfo {
        private final String className;

        private final String packageName;

        private ClassInfo(String className, String packageName) {
            this.className = className;
            this.packageName = packageName;
        }

        public String getClassName() {
            return className;
        }

        public String getPackageName() {
            return packageName;
        }
        
        public String getFullClassName() {
            StringBuilder result=new StringBuilder();
            if (packageName!=null) {
                result.append(packageName).append(".").append(className);
            } else {
                result.append(className);
            }
            return result.toString();
        }
    }

    private final Map<String, ClassInfo> mapSyntaxToClassInfo = new HashMap<String, ClassInfo>();

    public SyntaxToJavaClass(Map<String, String> mapSyntaxToClass) {
        for (Entry<String, String> syntaxAndClass : mapSyntaxToClass.entrySet()) {
            String fullClassName = syntaxAndClass.getValue().trim();
            String packageName = null;
            String className = null;
            int lastDotIndex = fullClassName.lastIndexOf('.');
            if (lastDotIndex != -1) {
                className = fullClassName.substring(lastDotIndex + 1);
                packageName = fullClassName.substring(0, lastDotIndex);
            } else {
                className = fullClassName;
            }
            mapSyntaxToClassInfo.put(syntaxAndClass.getKey(), new ClassInfo(className, packageName));
        }
    }

    public ClassInfo getClassInfo(String syntax) {
        return mapSyntaxToClassInfo.get(syntax);
    }
}