feat(jdk8): move files to new folder to avoid resources compiled.
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
|
||||
|
||||
/**
|
||||
* Includes attributes and child elements before any RELAX NG element.
|
||||
*/
|
||||
public interface Annotations<
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
CL extends CommentList<L>> {
|
||||
|
||||
/**
|
||||
* Called for an attribute annotation.
|
||||
*/
|
||||
void addAttribute(String ns, String localName, String prefix, String value, L loc) throws BuildException;
|
||||
|
||||
/**
|
||||
* Called for a child element annotation.
|
||||
*/
|
||||
void addElement(E ea) throws BuildException;
|
||||
|
||||
/**
|
||||
* Adds comments following the last initial child element annotation.
|
||||
*/
|
||||
void addComment(CL comments) throws BuildException;
|
||||
|
||||
void addLeadingComment(CL comments) throws BuildException;
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
/**
|
||||
* Signals an error while building schemas.
|
||||
*
|
||||
* <p>
|
||||
* Only {@link SchemaBuilder} can throw this exception to
|
||||
* abort the parsing in the middle.
|
||||
*/
|
||||
public class BuildException extends RuntimeException {
|
||||
private final Throwable cause;
|
||||
public BuildException(Throwable cause) {
|
||||
if (cause == null)
|
||||
throw new NullPointerException("null cause");
|
||||
this.cause = cause;
|
||||
}
|
||||
|
||||
public Throwable getCause() {
|
||||
return cause;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
|
||||
|
||||
public interface CommentList<L extends Location> {
|
||||
void addComment(String value, L loc) throws BuildException;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.parse.*;
|
||||
|
||||
|
||||
public interface DataPatternBuilder<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> {
|
||||
|
||||
void addParam(String name, String value, Context context, String ns, L loc, A anno) throws BuildException;
|
||||
void annotation(E ea);
|
||||
P makePattern(L loc, A anno) throws BuildException;
|
||||
P makePattern(P except, L loc, A anno) throws BuildException;
|
||||
}
|
||||
60
jdkSrc/jdk8/com/sun/xml/internal/rngom/ast/builder/Div.java
Normal file
60
jdkSrc/jdk8/com/sun/xml/internal/rngom/ast/builder/Div.java
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
|
||||
|
||||
public interface Div<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> extends GrammarSection<P,E,L,A,CL> {
|
||||
void endDiv(L loc, A anno) throws BuildException;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
|
||||
/**
|
||||
* Used to build foreign element annotations.
|
||||
*/
|
||||
public interface ElementAnnotationBuilder<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> extends Annotations<E,L,CL> {
|
||||
|
||||
/**
|
||||
* Called when a child text is found.
|
||||
*/
|
||||
void addText(String value, L loc, CL comments) throws BuildException;
|
||||
|
||||
/**
|
||||
* Called at the end to build an application data structure.
|
||||
*/
|
||||
E makeElementAnnotation() throws BuildException;
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
|
||||
/**
|
||||
* {@link Scope} for <grammar> element that serves as a container
|
||||
* of <define>s.
|
||||
*/
|
||||
public interface Grammar<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> extends GrammarSection<P,E,L,A,CL>, Scope<P,E,L,A,CL> {
|
||||
P endGrammar(L loc, A anno) throws BuildException;
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
|
||||
/**
|
||||
* The container that can have <define> elements.
|
||||
* <p>
|
||||
* {@link Div}, {@link Grammar}, {@link Include}, or {@link IncludedGrammar}.
|
||||
*/
|
||||
public interface GrammarSection<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> {
|
||||
|
||||
static final class Combine {
|
||||
private final String name;
|
||||
private Combine(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
final public String toString() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
static final Combine COMBINE_CHOICE = new Combine("choice");
|
||||
static final Combine COMBINE_INTERLEAVE = new Combine("interleave");
|
||||
|
||||
// using \u0000 guarantees that the name will be never used as
|
||||
// a user-defined pattern name.
|
||||
static final String START = "\u0000#start\u0000";
|
||||
|
||||
/**
|
||||
* Called when a pattern is defined.
|
||||
*
|
||||
* @param name
|
||||
* Name of the pattern. For the definition by a <start/> element,
|
||||
* this parameter is the same as {@link #START}.
|
||||
* to test if it's a named pattern definition or the start pattern definition.
|
||||
* @param combine
|
||||
* null or {@link #COMBINE_CHOICE} or {@link #COMBINE_INTERLEAVE} depending
|
||||
* on the value of the combine attribute.
|
||||
* @param pattern
|
||||
* The pattern to be defined.
|
||||
*/
|
||||
void define( String name, Combine combine, P pattern, L loc, A anno) throws BuildException;
|
||||
|
||||
/**
|
||||
* Called when an annotation is found.
|
||||
*/
|
||||
void topLevelAnnotation(E ea) throws BuildException;
|
||||
|
||||
/**
|
||||
* Called when a comment is found.
|
||||
*/
|
||||
void topLevelComment(CL comments) throws BuildException;
|
||||
|
||||
/**
|
||||
* Called when <div> is found.
|
||||
*
|
||||
* @return
|
||||
* the returned {@link Div} object will receive callbacks for structures
|
||||
* inside the <div> element.
|
||||
*/
|
||||
Div<P,E,L,A,CL> makeDiv();
|
||||
|
||||
/**
|
||||
* Returns null if already in an include.
|
||||
*/
|
||||
Include<P,E,L,A,CL> makeInclude();
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
|
||||
import com.sun.xml.internal.rngom.parse.IllegalSchemaException;
|
||||
import com.sun.xml.internal.rngom.parse.Parseable;
|
||||
|
||||
public interface Include<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> extends GrammarSection<P,E,L,A,CL> {
|
||||
/**
|
||||
* @param current
|
||||
* The current document we are parsing.
|
||||
* This is the document that contains an include.
|
||||
*/
|
||||
void endInclude(Parseable current, String uri, String ns,
|
||||
L loc, A anno) throws BuildException, IllegalSchemaException;
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
import com.sun.xml.internal.rngom.parse.Parseable;
|
||||
|
||||
/**
|
||||
* {@link Scope} for <grammar> element of the <include>d grammar.
|
||||
* <p>
|
||||
* This object builds <define>s in the included grammar that
|
||||
* override the definitions in the original grammar.
|
||||
*/
|
||||
public interface IncludedGrammar<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> extends GrammarSection<P,E,L,A,CL>, Scope<P,E,L,A,CL> {
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* technically, an included gramamr does not produce a pattern,
|
||||
* but this allows {@link Parseable#parseInclude(String, SchemaBuilder, IncludedGrammar, String)}
|
||||
* to return the result from {@link IncludedGrammar} nicely.
|
||||
*
|
||||
* <p>
|
||||
* The value returned from this method will be returned from the abovementioned method.
|
||||
*/
|
||||
P endIncludedGrammar(L loc, A anno) throws BuildException;
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedNameClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author
|
||||
* Kohsuke Kawaguchi (kk@kohsuke.org)
|
||||
*/
|
||||
public interface NameClassBuilder<
|
||||
N extends ParsedNameClass,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L> > {
|
||||
|
||||
N annotate(N nc, A anno) throws BuildException;
|
||||
N annotateAfter(N nc, E e) throws BuildException;
|
||||
N commentAfter(N nc, CL comments) throws BuildException;
|
||||
N makeChoice(List<N> nameClasses, L loc, A anno);
|
||||
|
||||
// should be handled by parser - KK
|
||||
// static final String INHERIT_NS = new String("#inherit");
|
||||
|
||||
// similarly, xmlns:* attribute should be rejected by the parser -KK
|
||||
|
||||
N makeName(String ns, String localName, String prefix, L loc, A anno);
|
||||
N makeNsName(String ns, L loc, A anno);
|
||||
/**
|
||||
* Caller must enforce constraints on except.
|
||||
*/
|
||||
N makeNsName(String ns, N except, L loc, A anno);
|
||||
N makeAnyName(L loc, A anno);
|
||||
/**
|
||||
* Caller must enforce constraints on except.
|
||||
*/
|
||||
N makeAnyName(N except, L loc, A anno);
|
||||
|
||||
N makeErrorNameClass();
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedNameClass;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.parse.*;
|
||||
import com.sun.xml.internal.rngom.parse.IllegalSchemaException;
|
||||
import com.sun.xml.internal.rngom.parse.Parseable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// TODO: define combine error check should be done by the parser.
|
||||
public interface SchemaBuilder<
|
||||
N extends ParsedNameClass,
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L>> {
|
||||
|
||||
/**
|
||||
* Returns the {@link NameClassBuilder}, which is used to build name
|
||||
* classes for this {@link SchemaBuilder}. The
|
||||
* {@link com.sun.xml.internal.rngom.nc.NameClass}es that are built will then be
|
||||
* fed into this {@link SchemaBuilder}to further build RELAX NG patterns.
|
||||
*
|
||||
* @return always return a non-null valid object. This method can (and
|
||||
* probably should) always return the same object.
|
||||
*/
|
||||
NameClassBuilder<N,E,L,A,CL> getNameClassBuilder() throws BuildException;
|
||||
|
||||
P makeChoice(List<P> patterns, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeInterleave(List<P> patterns, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeGroup(List<P> patterns, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeOneOrMore(P p, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeZeroOrMore(P p, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeOptional(P p, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeList(P p, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeMixed(P p, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeEmpty(L loc, A anno);
|
||||
|
||||
P makeNotAllowed(L loc, A anno);
|
||||
|
||||
P makeText(L loc, A anno);
|
||||
|
||||
P makeAttribute(N nc, P p, L loc, A anno) throws BuildException;
|
||||
|
||||
P makeElement(N nc, P p, L loc, A anno) throws BuildException;
|
||||
|
||||
DataPatternBuilder makeDataPatternBuilder(String datatypeLibrary, String type, L loc) throws BuildException;
|
||||
|
||||
P makeValue(String datatypeLibrary, String type, String value,
|
||||
Context c, String ns, L loc, A anno) throws BuildException;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param parent
|
||||
* The parent scope. null if there's no parent scope.
|
||||
* For example, if the complete document looks like the following:
|
||||
* <pre><xmp>
|
||||
* <grammar>
|
||||
* <start><element name="root"><empty/></element></start>
|
||||
* </grammar>
|
||||
* </xmp></pre>
|
||||
* Then when the outer-most {@link Grammar} is created, it will
|
||||
* receive the <tt>null</tt> parent.
|
||||
*/
|
||||
Grammar<P,E,L,A,CL> makeGrammar(Scope<P,E,L,A,CL> parent);
|
||||
|
||||
/**
|
||||
* Called when annotation is found right inside a pattern
|
||||
*
|
||||
* such as,
|
||||
*
|
||||
* <pre><xmp>
|
||||
* <element name="foo"> <!-- this becomes 'P' -->
|
||||
* <foreign:annotation /> <!-- this becomes 'A' -->
|
||||
* ...
|
||||
* </element>
|
||||
* </xmp></pre>
|
||||
*/
|
||||
P annotate(P p, A anno) throws BuildException;
|
||||
|
||||
/**
|
||||
* Called when element annotation is found after a pattern.
|
||||
*
|
||||
* such as,
|
||||
*
|
||||
* <pre><xmp>
|
||||
* <element name="foo">
|
||||
* <empty /> <!-- this becomes 'P' -->
|
||||
* <foreign:annotation /> <!-- this becomes 'E' -->
|
||||
* </element>
|
||||
* </xmp></pre>
|
||||
*/
|
||||
P annotateAfter(P p, E e) throws BuildException;
|
||||
|
||||
P commentAfter(P p, CL comments) throws BuildException;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param current
|
||||
* Current grammar that we are parsing. This is what contains
|
||||
* externalRef.
|
||||
* @param scope
|
||||
* The parent scope. null if there's no parent scope.
|
||||
* See {@link #makeGrammar(Scope)} for more details about
|
||||
* when this parameter can be null.
|
||||
*/
|
||||
P makeExternalRef(Parseable current, String uri, String ns, Scope<P,E,L,A,CL> scope,
|
||||
L loc, A anno) throws BuildException, IllegalSchemaException;
|
||||
|
||||
L makeLocation(String systemId, int lineNumber, int columnNumber);
|
||||
|
||||
/**
|
||||
* Creates {@link Annotations} object to parse annotations on patterns.
|
||||
*
|
||||
* @return
|
||||
* must be non-null.
|
||||
*/
|
||||
A makeAnnotations(CL comments, Context context);
|
||||
|
||||
ElementAnnotationBuilder<P,E,L,A,CL> makeElementAnnotationBuilder(String ns,
|
||||
String localName, String prefix, L loc, CL comments,
|
||||
Context context);
|
||||
|
||||
CL makeCommentList();
|
||||
|
||||
P makeErrorPattern();
|
||||
|
||||
/**
|
||||
* If this {@link SchemaBuilder}is interested in actually parsing
|
||||
* comments, this method returns true.
|
||||
* <p>
|
||||
* Returning false allows the schema parser to speed up the processing by
|
||||
* skiping comment-related handlings.
|
||||
*/
|
||||
boolean usesComments();
|
||||
|
||||
/**
|
||||
* Called after all the parsing is done.
|
||||
*
|
||||
* <p>
|
||||
* This hook typically allows as {@link SchemaBuilder} to expand
|
||||
* notAllowed (if it's following the simplification as in the spec.)
|
||||
*/
|
||||
P expandPattern( P p ) throws BuildException, IllegalSchemaException;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* Copyright (C) 2004-2011
|
||||
*
|
||||
* 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 com.sun.xml.internal.rngom.ast.builder;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.om.Location;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedPattern;
|
||||
import com.sun.xml.internal.rngom.ast.om.ParsedElementAnnotation;
|
||||
|
||||
public interface Scope<
|
||||
P extends ParsedPattern,
|
||||
E extends ParsedElementAnnotation,
|
||||
L extends Location,
|
||||
A extends Annotations<E,L,CL>,
|
||||
CL extends CommentList<L> > extends GrammarSection<P,E,L,A,CL> {
|
||||
P makeParentRef(String name, L loc, A anno) throws BuildException;
|
||||
P makeRef(String name, L loc, A anno) throws BuildException;
|
||||
}
|
||||
Reference in New Issue
Block a user