1/*
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26package com.sun.tools.internal.xjc.reader.xmlschema;
27
28import com.sun.tools.internal.xjc.model.CElement;
29import com.sun.xml.internal.xsom.XSAnnotation;
30import com.sun.xml.internal.xsom.XSAttGroupDecl;
31import com.sun.xml.internal.xsom.XSAttributeDecl;
32import com.sun.xml.internal.xsom.XSAttributeUse;
33import com.sun.xml.internal.xsom.XSComplexType;
34import com.sun.xml.internal.xsom.XSContentType;
35import com.sun.xml.internal.xsom.XSElementDecl;
36import com.sun.xml.internal.xsom.XSFacet;
37import com.sun.xml.internal.xsom.XSIdentityConstraint;
38import com.sun.xml.internal.xsom.XSModelGroup;
39import com.sun.xml.internal.xsom.XSModelGroupDecl;
40import com.sun.xml.internal.xsom.XSNotation;
41import com.sun.xml.internal.xsom.XSParticle;
42import com.sun.xml.internal.xsom.XSSchema;
43import com.sun.xml.internal.xsom.XSSimpleType;
44import com.sun.xml.internal.xsom.XSWildcard;
45import com.sun.xml.internal.xsom.XSXPath;
46
47/**
48 * {@link ClassBinder} that delegates the call to another {@link ClassBinder}.
49 *
50 * @author Kohsuke Kawaguchi (kk@kohsuke.org)
51 */
52abstract class ClassBinderFilter implements ClassBinder {
53    private final ClassBinder core;
54
55    protected ClassBinderFilter(ClassBinder core) {
56        this.core = core;
57    }
58
59    public CElement annotation(XSAnnotation xsAnnotation) {
60        return core.annotation(xsAnnotation);
61    }
62
63    public CElement attGroupDecl(XSAttGroupDecl xsAttGroupDecl) {
64        return core.attGroupDecl(xsAttGroupDecl);
65    }
66
67    public CElement attributeDecl(XSAttributeDecl xsAttributeDecl) {
68        return core.attributeDecl(xsAttributeDecl);
69    }
70
71    public CElement attributeUse(XSAttributeUse xsAttributeUse) {
72        return core.attributeUse(xsAttributeUse);
73    }
74
75    public CElement complexType(XSComplexType xsComplexType) {
76        return core.complexType(xsComplexType);
77    }
78
79    public CElement schema(XSSchema xsSchema) {
80        return core.schema(xsSchema);
81    }
82
83    public CElement facet(XSFacet xsFacet) {
84        return core.facet(xsFacet);
85    }
86
87    public CElement notation(XSNotation xsNotation) {
88        return core.notation(xsNotation);
89    }
90
91    public CElement simpleType(XSSimpleType xsSimpleType) {
92        return core.simpleType(xsSimpleType);
93    }
94
95    public CElement particle(XSParticle xsParticle) {
96        return core.particle(xsParticle);
97    }
98
99    public CElement empty(XSContentType xsContentType) {
100        return core.empty(xsContentType);
101    }
102
103    public CElement wildcard(XSWildcard xsWildcard) {
104        return core.wildcard(xsWildcard);
105    }
106
107    public CElement modelGroupDecl(XSModelGroupDecl xsModelGroupDecl) {
108        return core.modelGroupDecl(xsModelGroupDecl);
109    }
110
111    public CElement modelGroup(XSModelGroup xsModelGroup) {
112        return core.modelGroup(xsModelGroup);
113    }
114
115    public CElement elementDecl(XSElementDecl xsElementDecl) {
116        return core.elementDecl(xsElementDecl);
117    }
118
119    public CElement identityConstraint(XSIdentityConstraint xsIdentityConstraint) {
120        return core.identityConstraint(xsIdentityConstraint);
121    }
122
123    public CElement xpath(XSXPath xsxPath) {
124        return core.xpath(xsxPath);
125    }
126}
127