From f3e4bd6e45c0a103c0336e6d030eca5de2d4110f Mon Sep 17 00:00:00 2001 From: Sai Gandham Date: Fri, 20 Apr 2018 16:44:13 +0000 Subject: [PATCH] Adding more testcases to Misc xgen Issue-ID: AAF-129 Change-Id: I0a6fce7f12d98e16ae777eeb7045ef338c66b1d9 Signed-off-by: Sai Gandham --- .../src/main/java/org/onap/aaf/misc/xgen/Back.java | 66 +-- .../main/java/org/onap/aaf/misc/xgen/Cache.java | 72 +-- .../main/java/org/onap/aaf/misc/xgen/CacheGen.java | 262 ++++----- .../src/main/java/org/onap/aaf/misc/xgen/Code.java | 58 +- .../java/org/onap/aaf/misc/xgen/DynamicCode.java | 88 +-- .../src/main/java/org/onap/aaf/misc/xgen/Mark.java | 78 +-- .../main/java/org/onap/aaf/misc/xgen/Section.java | 120 ++--- .../src/main/java/org/onap/aaf/misc/xgen/XGen.java | 592 ++++++++++----------- .../main/java/org/onap/aaf/misc/xgen/XGenBuff.java | 172 +++--- .../java/org/onap/aaf/misc/xgen/html/HTML4Gen.java | 286 +++++----- .../java/org/onap/aaf/misc/xgen/html/HTML5Gen.java | 310 +++++------ .../org/onap/aaf/misc/xgen/html/HTMLCacheGen.java | 118 ++-- .../java/org/onap/aaf/misc/xgen/html/HTMLGen.java | 480 ++++++++--------- .../java/org/onap/aaf/misc/xgen/html/Imports.java | 196 +++---- .../java/org/onap/aaf/misc/xgen/html/JSGen.java | 408 +++++++------- .../java/org/onap/aaf/misc/xgen/html/State.java | 54 +- .../java/org/onap/aaf/misc/xgen/html/Thematic.java | 54 +- .../org/onap/aaf/misc/xgen/xml/XMLCacheGen.java | 90 ++-- .../java/org/onap/aaf/misc/xgen/xml/XMLGen.java | 88 +-- .../java/org/onap/aaf/misc/xgen/JU_BackTest.java | 37 ++ .../java/org/onap/aaf/misc/xgen/JU_MarkTest.java | 41 ++ .../org/onap/aaf/misc/xgen/JU_NullCacheTest.java | 35 ++ .../org/onap/aaf/misc/xgen/JU_SectionTest.java | 64 +++ .../onap/aaf/misc/xgen/html/JU_HTML4GenTest.java | 315 +++++++++++ .../onap/aaf/misc/xgen/html/JU_HTML5GenTest.java | 135 +++++ .../onap/aaf/misc/xgen/html/JU_ImportsTest.java | 54 ++ .../onap/aaf/misc/xgen/xml/JU_XMLCacheGenTest.java | 63 +++ .../org/onap/aaf/misc/xgen/xml/JU_XMLGenTest.java | 66 +++ 28 files changed, 2606 insertions(+), 1796 deletions(-) create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_BackTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_MarkTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_NullCacheTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_SectionTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML4GenTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML5GenTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_ImportsTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLCacheGenTest.java create mode 100644 misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLGenTest.java diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Back.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Back.java index 71c10aa4..342e3ace 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Back.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Back.java @@ -1,34 +1,34 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -public class Back { - public String str; - public boolean dec; - public boolean cr; - - public Back(String string, boolean decrement, boolean newline) { - str = string; - dec = decrement; - cr = newline; - } +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +public class Back { + public String str; + public boolean dec; + public boolean cr; + + public Back(String string, boolean decrement, boolean newline) { + str = string; + dec = decrement; + cr = newline; + } } \ No newline at end of file diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Cache.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Cache.java index 2a9ee674..ce90bd13 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Cache.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Cache.java @@ -1,37 +1,37 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - - -public interface Cache> { - public void dynamic(G hgen, Code code); - - public static class Null> implements Cache { - @Override - public void dynamic(N hgen, Code code) {} // NO_OP, no matter what type - - @SuppressWarnings("rawtypes") - private static Null singleton = new Null(); - public static Null singleton() { return singleton;} - } - +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + + +public interface Cache> { + public void dynamic(G hgen, Code code); + + public static class Null> implements Cache { + @Override + public void dynamic(N hgen, Code code) {} // NO_OP, no matter what type + + @SuppressWarnings("rawtypes") + private static Null singleton = new Null(); + public static Null singleton() { return singleton;} + } + } \ No newline at end of file diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/CacheGen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/CacheGen.java index aa3d1fed..74b590da 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/CacheGen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/CacheGen.java @@ -1,131 +1,131 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.util.ArrayList; - -import org.onap.aaf.misc.env.APIException; -import org.onap.aaf.misc.env.Env; -import org.onap.aaf.misc.env.Trans; -import org.onap.aaf.misc.xgen.html.State; -import org.onap.aaf.misc.xgen.html.Thematic; - - -public abstract class CacheGen> { - public static final int NO_FLAGS = 0x0; - public final static int PRETTY = 0x1; - public final static int XML = 0x2; - public final static int HTML4 = 0x4; - public final static int HTML5 = 0x8; - - - private ArrayList> sections = new ArrayList>(); - private int flags; - private final Thematic thematic; - - public CacheGen(int flags, Code code) throws APIException, IOException { - this.flags = flags; - final XGenBuff buff = new XGenBuff(flags,this); - // Run to gather Strings and Code Class Segments - buff.run(new Cache() { - @Override - public void dynamic(G hgen, Code code) { - sections.add(buff.newSection()); - sections.add(new Dynamic(hgen.getIndent(),code)); - } - },code); - sections.add(buff.newSection()); - - // If Code implements thematic, set for later - thematic = code instanceof Thematic?(Thematic)code:null; - - } - - public abstract G create(int htmlStyle, Writer w); - - public void replay(State state, Trans trans, OutputStream os, String theme) throws IOException, APIException { - replay(state, trans, new OutputStreamWriter(os), theme); - } - - public void replay(State state, Trans trans,Writer w, String theme) throws IOException, APIException { - if(thematic!=null) { - theme = thematic.themeResolve(theme); - } - /* Theme - trans.setTheme(theme); - int htmlStyle = state.htmlVer(theme); - */ - - XGenBuff buff = new XGenBuff(flags,this); - - // forward - int indent = 0; - Section s; - int i=0; - @SuppressWarnings("unchecked") - Section[] reverse = new Section[sections.size()]; - for(Section section : sections) { - s = section.use(state, trans, buff); // note, doesn't change cached, only dynamic, which is created for thread - int tempIndent = s.getIndent(); - s.setIndent(indent); - s.forward(w); - s.setIndent(tempIndent); - indent = tempIndent; - reverse[i++]=s; - } - - for(--i;i>=0;--i) { - reverse[i].back(w); - } - w.flush(); - } - - private class Dynamic extends Section { - private Code code; - - public Dynamic(int indent, Code code) { - this.code = code; - this.indent = indent; - } - - @SuppressWarnings("unchecked") - public Section use(State state, Trans trans, XGenBuff buff) throws APIException, IOException { - // Clone Dynamic to make Thread Safe - Dynamic d = new Dynamic(indent,code); - buff.setIndent(indent); - if(code instanceof DynamicCode) { - buff.run(state,trans,Cache.Null.singleton(), (DynamicCode)code); - } else { - buff.run((Cache)Cache.Null.singleton(), code); - } - Section s = buff.newSection(); - d.indent = s.indent; - d.forward = s.forward; - d.backward = s.backward; - return d; - } - } -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.ArrayList; + +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.env.Env; +import org.onap.aaf.misc.env.Trans; +import org.onap.aaf.misc.xgen.html.State; +import org.onap.aaf.misc.xgen.html.Thematic; + + +public abstract class CacheGen> { + public static final int NO_FLAGS = 0x0; + public final static int PRETTY = 0x1; + public final static int XML = 0x2; + public final static int HTML4 = 0x4; + public final static int HTML5 = 0x8; + + + private ArrayList> sections = new ArrayList>(); + private int flags; + private final Thematic thematic; + + public CacheGen(int flags, Code code) throws APIException, IOException { + this.flags = flags; + final XGenBuff buff = new XGenBuff(flags,this); + // Run to gather Strings and Code Class Segments + buff.run(new Cache() { + @Override + public void dynamic(G hgen, Code code) { + sections.add(buff.newSection()); + sections.add(new Dynamic(hgen.getIndent(),code)); + } + },code); + sections.add(buff.newSection()); + + // If Code implements thematic, set for later + thematic = code instanceof Thematic?(Thematic)code:null; + + } + + public abstract G create(int htmlStyle, Writer w); + + public void replay(State state, Trans trans, OutputStream os, String theme) throws IOException, APIException { + replay(state, trans, new OutputStreamWriter(os), theme); + } + + public void replay(State state, Trans trans,Writer w, String theme) throws IOException, APIException { + if(thematic!=null) { + theme = thematic.themeResolve(theme); + } + /* Theme + trans.setTheme(theme); + int htmlStyle = state.htmlVer(theme); + */ + + XGenBuff buff = new XGenBuff(flags,this); + + // forward + int indent = 0; + Section s; + int i=0; + @SuppressWarnings("unchecked") + Section[] reverse = new Section[sections.size()]; + for(Section section : sections) { + s = section.use(state, trans, buff); // note, doesn't change cached, only dynamic, which is created for thread + int tempIndent = s.getIndent(); + s.setIndent(indent); + s.forward(w); + s.setIndent(tempIndent); + indent = tempIndent; + reverse[i++]=s; + } + + for(--i;i>=0;--i) { + reverse[i].back(w); + } + w.flush(); + } + + private class Dynamic extends Section { + private Code code; + + public Dynamic(int indent, Code code) { + this.code = code; + this.indent = indent; + } + + @SuppressWarnings("unchecked") + public Section use(State state, Trans trans, XGenBuff buff) throws APIException, IOException { + // Clone Dynamic to make Thread Safe + Dynamic d = new Dynamic(indent,code); + buff.setIndent(indent); + if(code instanceof DynamicCode) { + buff.run(state,trans,Cache.Null.singleton(), (DynamicCode)code); + } else { + buff.run((Cache)Cache.Null.singleton(), code); + } + Section s = buff.newSection(); + d.indent = s.indent; + d.forward = s.forward; + d.backward = s.backward; + return d; + } + } +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Code.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Code.java index 96418df6..68048431 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Code.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Code.java @@ -1,30 +1,30 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -import java.io.IOException; - -import org.onap.aaf.misc.env.APIException; - -public interface Code> { - public void code(Cache cache, G xgen) throws APIException, IOException; +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +import java.io.IOException; + +import org.onap.aaf.misc.env.APIException; + +public interface Code> { + public void code(Cache cache, G xgen) throws APIException, IOException; } \ No newline at end of file diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/DynamicCode.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/DynamicCode.java index 1b798fb6..a4194b97 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/DynamicCode.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/DynamicCode.java @@ -1,44 +1,44 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -import java.io.IOException; - -import org.onap.aaf.misc.env.APIException; -import org.onap.aaf.misc.env.Env; -import org.onap.aaf.misc.env.Trans; -import org.onap.aaf.misc.xgen.html.State; - -/** - * Special Code Interface to gain access to Transaction - * and State information - * @author Jonathan - * - */ -public abstract class DynamicCode, AS extends State, TRANS extends Trans> implements Code { - public abstract void code(final AS state, final TRANS trans, final Cache cache, final G xgen) throws APIException, IOException; - - // We expect not to have this section of the code engaged at any time - public void code(final Cache cache, final G xgen) throws APIException, IOException { - code(null, null,cache,xgen); - } -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +import java.io.IOException; + +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.env.Env; +import org.onap.aaf.misc.env.Trans; +import org.onap.aaf.misc.xgen.html.State; + +/** + * Special Code Interface to gain access to Transaction + * and State information + * @author Jonathan + * + */ +public abstract class DynamicCode, AS extends State, TRANS extends Trans> implements Code { + public abstract void code(final AS state, final TRANS trans, final Cache cache, final G xgen) throws APIException, IOException; + + // We expect not to have this section of the code engaged at any time + public void code(final Cache cache, final G xgen) throws APIException, IOException { + code(null, null,cache,xgen); + } +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Mark.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Mark.java index 92dc5b96..80b0680d 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Mark.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Mark.java @@ -1,40 +1,40 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -public class Mark { - // package on purpose - int spot = 0; - public String comment; - - public Mark() { - comment = null; - } - - public Mark(String string) { - comment = string; - } - - public void spot(int spot) { - this.spot = spot; - } +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +public class Mark { + // package on purpose + int spot = 0; + public String comment; + + public Mark() { + comment = null; + } + + public Mark(String string) { + comment = string; + } + + public void spot(int spot) { + this.spot = spot; + } } \ No newline at end of file diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Section.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Section.java index 8eb98ff6..e73512c3 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Section.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/Section.java @@ -1,61 +1,61 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -import java.io.IOException; -import java.io.Writer; - -import org.onap.aaf.misc.env.APIException; -import org.onap.aaf.misc.env.Env; -import org.onap.aaf.misc.env.Trans; -import org.onap.aaf.misc.xgen.html.State; - -public class Section> { - protected int indent; - protected String forward; - protected String backward; - - // Default is to use the set Strings (static) - public Section use(State state, Trans trans, XGenBuff buff) throws APIException, IOException { - return this; - } - - public int getIndent() { - return indent; - } - - public void setIndent(int indent) { - this.indent = indent; - } - - public void forward(Writer w) throws IOException { - w.write(forward); - } - - public void back(Writer w) throws IOException { - w.write(backward); - } - - public String toString() { - return forward; - } +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +import java.io.IOException; +import java.io.Writer; + +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.env.Env; +import org.onap.aaf.misc.env.Trans; +import org.onap.aaf.misc.xgen.html.State; + +public class Section> { + protected int indent; + protected String forward; + protected String backward; + + // Default is to use the set Strings (static) + public Section use(State state, Trans trans, XGenBuff buff) throws APIException, IOException { + return this; + } + + public int getIndent() { + return indent; + } + + public void setIndent(int indent) { + this.indent = indent; + } + + public void forward(Writer w) throws IOException { + w.write(forward); + } + + public void back(Writer w) throws IOException { + w.write(backward); + } + + public String toString() { + return forward; + } } \ No newline at end of file diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGen.java index 09c03111..632e7a85 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGen.java @@ -1,296 +1,296 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -import java.io.PrintWriter; -import java.io.Writer; -import java.util.Stack; - -import org.onap.aaf.misc.env.util.IndentPrintWriter; -import org.onap.aaf.misc.env.util.StringBuilderWriter; - -public class XGen> { - - public static int COMMENT_COLUMN = 40; - private StringBuilder backSB = new StringBuilder(); - private Stack backStack = new Stack(); - - protected XGen(Writer w) { - forward = new IndentPrintWriter(w); - } - - public int pushBack(Back b) { - int rv = backStack.size(); - backStack.push(b); - return rv; - } - - public boolean pretty = false; - protected IndentPrintWriter forward; - - public IndentPrintWriter getWriter() { - return forward; - } - - protected PrintWriter back = new PrintWriter( - new StringBuilderWriter(backSB)); - - @SuppressWarnings("unchecked") - public RT pretty() { - pretty = true; - return (RT) this; - } - - protected void prettyln(PrintWriter pw) { - if(pretty)pw.println(); - } - - public RT leaf(Mark mark, String tag, String ... args) { - mark.spot = backStack.size(); - return leaf(tag, args); - } - - @SuppressWarnings("unchecked") - public RT leaf(String tag, String ... attrs) { - forward.append('<'); - forward.append(tag); - addAttrs(attrs); - forward.append('>'); - back.append("'); - backStack.push(new Back(backSB.toString(), false, true)); - backSB.setLength(0); - return (RT)this; - } - - public RT incr(String tag, String ... args) { - return incr(null, tag, false, args); - } - - public RT incr(String tag, boolean oneLine, String ... args) { - return incr(null, tag, oneLine, args); - } - - public RT incr(Mark mark) { - return incr(mark,mark.comment, false, new String[0]); - } - - public RT incr(Mark mark, String tag, String ... attrs) { - return incr(mark, tag, false, attrs); - } - - @SuppressWarnings("unchecked") - public RT incr(Mark mark, String tag, boolean oneLine, String ... attrs) { - forward.append('<'); - forward.append(tag); - addAttrs(attrs); - forward.append('>'); - - back.append("'); - - if(pretty) { - if(mark!=null && mark.comment!=null) { - int fi = forward.getIndent()*IndentPrintWriter.INDENT; - for(int i = fi+backSB.length();i<=COMMENT_COLUMN;++i) { - back.append(' '); - } - back.append(""); - - forward.toCol(COMMENT_COLUMN); - forward.append(""); - } - forward.inc(); - if(!oneLine) { - forward.println(); - } - back.println(); - } - if(mark!=null)mark.spot = backStack.size(); - backStack.push(new Back(backSB.toString(),true, false)); - backSB.setLength(0); - return (RT)this; - } - - @SuppressWarnings("unchecked") - public RT tagOnly(String tag, String ... attrs) { - forward.append('<'); - forward.append(tag); - addAttrs(attrs); - forward.append(" />"); - if(pretty) { - forward.println(); - } - return (RT)this; - } - - @SuppressWarnings("unchecked") - public RT text(String txt) { - forward.append(txt); - return (RT)this; - } - - @SuppressWarnings("unchecked") - public RT xml(String txt) { - for(int i=0; i': - forward.append(">"); - break; - case '&': - forward.append("&"); - break; - default: - forward.append(c); - } - } - return (RT)this; - } - - - @SuppressWarnings("unchecked") - public RT textCR(int tabs, String txt) { - for(int i=0;i0) { - forward.append(' '); - String[] split = attr.split("=",2); - switch(split.length) { - case 0: - break; - case 1: - forward.append(split[0]); -// forward.append("=\"\""); - break; - default: - forward.append(split[0]); - forward.append("=\""); - forward.append(split[1]); - forward.append('"'); - break; - } - } - } - } - } - - @SuppressWarnings("unchecked") - public RT comment(String string) { - if(pretty) { - forward.print(""); - } - return (RT)this; - } - - public void setIndent(int indent) { - forward.setIndent(indent); - forward.toIndent(); - } - - public int getIndent() { - return forward.getIndent(); - } - -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +import java.io.PrintWriter; +import java.io.Writer; +import java.util.Stack; + +import org.onap.aaf.misc.env.util.IndentPrintWriter; +import org.onap.aaf.misc.env.util.StringBuilderWriter; + +public class XGen> { + + public static int COMMENT_COLUMN = 40; + private StringBuilder backSB = new StringBuilder(); + private Stack backStack = new Stack(); + + protected XGen(Writer w) { + forward = new IndentPrintWriter(w); + } + + public int pushBack(Back b) { + int rv = backStack.size(); + backStack.push(b); + return rv; + } + + public boolean pretty = false; + protected IndentPrintWriter forward; + + public IndentPrintWriter getWriter() { + return forward; + } + + protected PrintWriter back = new PrintWriter( + new StringBuilderWriter(backSB)); + + @SuppressWarnings("unchecked") + public RT pretty() { + pretty = true; + return (RT) this; + } + + protected void prettyln(PrintWriter pw) { + if(pretty)pw.println(); + } + + public RT leaf(Mark mark, String tag, String ... args) { + mark.spot = backStack.size(); + return leaf(tag, args); + } + + @SuppressWarnings("unchecked") + public RT leaf(String tag, String ... attrs) { + forward.append('<'); + forward.append(tag); + addAttrs(attrs); + forward.append('>'); + back.append("'); + backStack.push(new Back(backSB.toString(), false, true)); + backSB.setLength(0); + return (RT)this; + } + + public RT incr(String tag, String ... args) { + return incr(null, tag, false, args); + } + + public RT incr(String tag, boolean oneLine, String ... args) { + return incr(null, tag, oneLine, args); + } + + public RT incr(Mark mark) { + return incr(mark,mark.comment, false, new String[0]); + } + + public RT incr(Mark mark, String tag, String ... attrs) { + return incr(mark, tag, false, attrs); + } + + @SuppressWarnings("unchecked") + public RT incr(Mark mark, String tag, boolean oneLine, String ... attrs) { + forward.append('<'); + forward.append(tag); + addAttrs(attrs); + forward.append('>'); + + back.append("'); + + if(pretty) { + if(mark!=null && mark.comment!=null) { + int fi = forward.getIndent()*IndentPrintWriter.INDENT; + for(int i = fi+backSB.length();i<=COMMENT_COLUMN;++i) { + back.append(' '); + } + back.append(""); + + forward.toCol(COMMENT_COLUMN); + forward.append(""); + } + forward.inc(); + if(!oneLine) { + forward.println(); + } + back.println(); + } + if(mark!=null)mark.spot = backStack.size(); + backStack.push(new Back(backSB.toString(),true, false)); + backSB.setLength(0); + return (RT)this; + } + + @SuppressWarnings("unchecked") + public RT tagOnly(String tag, String ... attrs) { + forward.append('<'); + forward.append(tag); + addAttrs(attrs); + forward.append(" />"); + if(pretty) { + forward.println(); + } + return (RT)this; + } + + @SuppressWarnings("unchecked") + public RT text(String txt) { + forward.append(txt); + return (RT)this; + } + + @SuppressWarnings("unchecked") + public RT xml(String txt) { + for(int i=0; i': + forward.append(">"); + break; + case '&': + forward.append("&"); + break; + default: + forward.append(c); + } + } + return (RT)this; + } + + + @SuppressWarnings("unchecked") + public RT textCR(int tabs, String txt) { + for(int i=0;i0) { + forward.append(' '); + String[] split = attr.split("=",2); + switch(split.length) { + case 0: + break; + case 1: + forward.append(split[0]); +// forward.append("=\"\""); + break; + default: + forward.append(split[0]); + forward.append("=\""); + forward.append(split[1]); + forward.append('"'); + break; + } + } + } + } + } + + @SuppressWarnings("unchecked") + public RT comment(String string) { + if(pretty) { + forward.print(""); + } + return (RT)this; + } + + public void setIndent(int indent) { + forward.setIndent(indent); + forward.toIndent(); + } + + public int getIndent() { + return forward.getIndent(); + } + +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGenBuff.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGenBuff.java index 95c4060b..d2578a34 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGenBuff.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/XGenBuff.java @@ -1,86 +1,86 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen; - -import java.io.IOException; - -import org.onap.aaf.misc.env.APIException; -import org.onap.aaf.misc.env.Env; -import org.onap.aaf.misc.env.Trans; -import org.onap.aaf.misc.env.util.StringBuilderWriter; -import org.onap.aaf.misc.xgen.html.State; - -public class XGenBuff> { - private G xgen; - private StringBuilder sb; - // private String forward, backward; - - public XGenBuff(int flags, CacheGen cg) { - sb = new StringBuilder(); - xgen = cg.create(flags, new StringBuilderWriter(sb)); - } - - /** - * Normal case of building up Cached HTML without transaction info - * - * @param cache - * @param code - * @throws APIException - * @throws IOException - */ - public void run(Cache cache, Code code) throws APIException, IOException { - code.code(cache, xgen); - } - - /** - * Special Case where code is dynamic, so give access to State and Trans info - * - * @param state - * @param trans - * @param cache - * @param code - * @throws APIException - * @throws IOException - */ - @SuppressWarnings({ "unchecked", "rawtypes" }) - public void run(State state, Trans trans, Cache cache, DynamicCode code) throws APIException, IOException { - code.code(state, trans, cache, xgen); - } - - public int getIndent() { - return xgen.getIndent(); - } - - public void setIndent(int indent) { - xgen.setIndent(indent); - } - - public Section newSection() { - Section s = new Section(); - s.indent = xgen.getIndent(); - s.forward = sb.toString(); - sb.setLength(0); - s.backward = sb.toString(); - sb.setLength(0); - return s; - } -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen; + +import java.io.IOException; + +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.env.Env; +import org.onap.aaf.misc.env.Trans; +import org.onap.aaf.misc.env.util.StringBuilderWriter; +import org.onap.aaf.misc.xgen.html.State; + +public class XGenBuff> { + private G xgen; + private StringBuilder sb; + // private String forward, backward; + + public XGenBuff(int flags, CacheGen cg) { + sb = new StringBuilder(); + xgen = cg.create(flags, new StringBuilderWriter(sb)); + } + + /** + * Normal case of building up Cached HTML without transaction info + * + * @param cache + * @param code + * @throws APIException + * @throws IOException + */ + public void run(Cache cache, Code code) throws APIException, IOException { + code.code(cache, xgen); + } + + /** + * Special Case where code is dynamic, so give access to State and Trans info + * + * @param state + * @param trans + * @param cache + * @param code + * @throws APIException + * @throws IOException + */ + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void run(State state, Trans trans, Cache cache, DynamicCode code) throws APIException, IOException { + code.code(state, trans, cache, xgen); + } + + public int getIndent() { + return xgen.getIndent(); + } + + public void setIndent(int indent) { + xgen.setIndent(indent); + } + + public Section newSection() { + Section s = new Section(); + s.indent = xgen.getIndent(); + s.forward = sb.toString(); + sb.setLength(0); + s.backward = sb.toString(); + sb.setLength(0); + return s; + } +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML4Gen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML4Gen.java index dfab12cb..34d798d5 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML4Gen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML4Gen.java @@ -1,143 +1,143 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.html; - -import java.io.Writer; - -import org.onap.aaf.misc.xgen.Mark; - -public class HTML4Gen extends HTMLGen { - private final static String DOCTYPE = - /* - ""; - ""; - */ - ""; - - public HTML4Gen(Writer w) { - super(w); - } - - @Override - public HTMLGen html(String ... attrib) { - forward.println(DOCTYPE); - return incr("html","xmlns=http://www.w3.org/1999/xhtml","xml:lang=en","lang=en"); - - } - - @Override - public Mark head() { - Mark head = new Mark("head"); - incr(head); - return head; - } - - @Override - public Mark body(String ... attrs) { - Mark body = new Mark("body"); - incr(body,"body",attrs); - return body; - } - - @Override - public HTML4Gen charset(String charset) { - forward.append(""); - prettyln(forward); - return this; - } - - @Override - public Mark header(String ... attribs) { - String[] a = new String[attribs.length+1]; - a[0]="header"; - System.arraycopy(attribs, 0, a, 1, attribs.length); - return divID(a); - } - - @Override - public Mark footer(String ... attribs) { - String[] a = new String[attribs.length+1]; - a[0]="footer"; - System.arraycopy(attribs, 0, a, 1, attribs.length); - return divID(a); - } - - @Override - public Mark section(String ... attribs) { - String[] a = new String[attribs.length+1]; - a[0]="section"; - System.arraycopy(attribs, 0, a, 1, attribs.length); - return divID(a); - } - - @Override - public Mark article(String ... attribs) { - String[] a = new String[attribs.length+1]; - a[0]="attrib"; - System.arraycopy(attribs, 0, a, 1, attribs.length); - return divID(a); - } - - @Override - public Mark aside(String ... attribs) { - String[] a = new String[attribs.length+1]; - a[0]="aside"; - System.arraycopy(attribs, 0, a, 1, attribs.length); - return divID(a); - } - - @Override - public Mark nav(String ... attribs) { - String[] a = new String[attribs.length+1]; - a[0]="nav"; - System.arraycopy(attribs, 0, a, 1, attribs.length); - return divID(a); - } - -// @Override -// protected void importCSS(Imports imports) { -// if(imports.css.size()==1) { -// cssInline(imports.css.get(0)); -// } else { -// text(""); -// prettyln(forward); -// } -// } - -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.html; + +import java.io.Writer; + +import org.onap.aaf.misc.xgen.Mark; + +public class HTML4Gen extends HTMLGen { + private final static String DOCTYPE = + /* + ""; + ""; + */ + ""; + + public HTML4Gen(Writer w) { + super(w); + } + + @Override + public HTMLGen html(String ... attrib) { + forward.println(DOCTYPE); + return incr("html","xmlns=http://www.w3.org/1999/xhtml","xml:lang=en","lang=en"); + + } + + @Override + public Mark head() { + Mark head = new Mark("head"); + incr(head); + return head; + } + + @Override + public Mark body(String ... attrs) { + Mark body = new Mark("body"); + incr(body,"body",attrs); + return body; + } + + @Override + public HTML4Gen charset(String charset) { + forward.append(""); + prettyln(forward); + return this; + } + + @Override + public Mark header(String ... attribs) { + String[] a = new String[attribs.length+1]; + a[0]="header"; + System.arraycopy(attribs, 0, a, 1, attribs.length); + return divID(a); + } + + @Override + public Mark footer(String ... attribs) { + String[] a = new String[attribs.length+1]; + a[0]="footer"; + System.arraycopy(attribs, 0, a, 1, attribs.length); + return divID(a); + } + + @Override + public Mark section(String ... attribs) { + String[] a = new String[attribs.length+1]; + a[0]="section"; + System.arraycopy(attribs, 0, a, 1, attribs.length); + return divID(a); + } + + @Override + public Mark article(String ... attribs) { + String[] a = new String[attribs.length+1]; + a[0]="attrib"; + System.arraycopy(attribs, 0, a, 1, attribs.length); + return divID(a); + } + + @Override + public Mark aside(String ... attribs) { + String[] a = new String[attribs.length+1]; + a[0]="aside"; + System.arraycopy(attribs, 0, a, 1, attribs.length); + return divID(a); + } + + @Override + public Mark nav(String ... attribs) { + String[] a = new String[attribs.length+1]; + a[0]="nav"; + System.arraycopy(attribs, 0, a, 1, attribs.length); + return divID(a); + } + +// @Override +// protected void importCSS(Imports imports) { +// if(imports.css.size()==1) { +// cssInline(imports.css.get(0)); +// } else { +// text(""); +// prettyln(forward); +// } +// } + +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML5Gen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML5Gen.java index d83004e8..f155a65e 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML5Gen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML5Gen.java @@ -1,155 +1,155 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.html; - -import java.io.Writer; - -import org.onap.aaf.misc.xgen.Mark; - -public class HTML5Gen extends HTMLGen { - public HTML5Gen(Writer w) { - super(w); - } - - @Override - public HTMLGen html(String ... attrib) { - //forward.println(""); - incr("html",attrib); - return this; - } - - @Override - public Mark head() { - Mark head = new Mark("head"); - incr(head).directive("meta","charset=utf-8"); - return head; - } - - @Override - public Mark body(String ... attrs) { - Mark body = new Mark("body"); - incr(body,"body",attrs); - //chromeFrame(); - return body; - } - - @Override - public HTML5Gen charset(String charset) { - forward.append(""); - prettyln(forward); - return this; - } - - @Override - public Mark header(String ... attribs) { - Mark mark = new Mark("header"); - incr(mark, mark.comment, attribs); - return mark; - } - - @Override - public Mark footer(String ... attribs) { - Mark mark = new Mark("footer"); - incr(mark, mark.comment, attribs); - return mark; - } - - @Override - public Mark section(String ... attribs) { - Mark mark = new Mark("section"); - incr(mark, mark.comment,attribs); - return mark; - } - - @Override - public Mark article(String ... attribs) { - Mark mark = new Mark("article"); - incr(mark, mark.comment,attribs); - return mark; - } - - @Override - public Mark aside(String ... attribs) { - Mark mark = new Mark("aside"); - incr(mark, mark.comment,attribs); - return mark; - } - - @Override - public Mark nav(String ... attribs) { - Mark mark = new Mark("nav"); - incr(mark, mark.comment,attribs); - return mark; - } - - -// @Override -// protected void importCSS(Imports imports) { -// if(imports.css.size() == 1) { -// cssInline(imports.css.get(0)); -// } else { -// for(String str : imports.css) { -// forward.print(""); -// } -// } -// } -// - - /* - public void chromeFrame() { - this.textCR(0,""); - } - */ - -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.html; + +import java.io.Writer; + +import org.onap.aaf.misc.xgen.Mark; + +public class HTML5Gen extends HTMLGen { + public HTML5Gen(Writer w) { + super(w); + } + + @Override + public HTMLGen html(String ... attrib) { + //forward.println(""); + incr("html",attrib); + return this; + } + + @Override + public Mark head() { + Mark head = new Mark("head"); + incr(head).directive("meta","charset=utf-8"); + return head; + } + + @Override + public Mark body(String ... attrs) { + Mark body = new Mark("body"); + incr(body,"body",attrs); + //chromeFrame(); + return body; + } + + @Override + public HTML5Gen charset(String charset) { + forward.append(""); + prettyln(forward); + return this; + } + + @Override + public Mark header(String ... attribs) { + Mark mark = new Mark("header"); + incr(mark, mark.comment, attribs); + return mark; + } + + @Override + public Mark footer(String ... attribs) { + Mark mark = new Mark("footer"); + incr(mark, mark.comment, attribs); + return mark; + } + + @Override + public Mark section(String ... attribs) { + Mark mark = new Mark("section"); + incr(mark, mark.comment,attribs); + return mark; + } + + @Override + public Mark article(String ... attribs) { + Mark mark = new Mark("article"); + incr(mark, mark.comment,attribs); + return mark; + } + + @Override + public Mark aside(String ... attribs) { + Mark mark = new Mark("aside"); + incr(mark, mark.comment,attribs); + return mark; + } + + @Override + public Mark nav(String ... attribs) { + Mark mark = new Mark("nav"); + incr(mark, mark.comment,attribs); + return mark; + } + + +// @Override +// protected void importCSS(Imports imports) { +// if(imports.css.size() == 1) { +// cssInline(imports.css.get(0)); +// } else { +// for(String str : imports.css) { +// forward.print(""); +// } +// } +// } +// + + /* + public void chromeFrame() { + this.textCR(0,""); + } + */ + +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLCacheGen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLCacheGen.java index 8fba1555..74c5a000 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLCacheGen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLCacheGen.java @@ -1,59 +1,59 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.html; - -import java.io.IOException; -import java.io.Writer; - -import org.onap.aaf.misc.env.APIException; -import org.onap.aaf.misc.xgen.CacheGen; -import org.onap.aaf.misc.xgen.Code; - -public class HTMLCacheGen extends CacheGen { - protected int flags; - - public HTMLCacheGen(int flags, Code code) throws APIException,IOException { - super(flags, code); - this.flags = flags; - } - - @Override - public HTMLGen create(int htmlStyle, Writer w) { - HTMLGen hg; - switch(htmlStyle&(CacheGen.HTML4|CacheGen.HTML5)) { - case CacheGen.HTML4: - hg = new HTML4Gen(w); - break; - case CacheGen.HTML5: - default: - hg = new HTML5Gen(w); - break; - - } - hg.pretty = (htmlStyle&CacheGen.PRETTY)>0; - return hg; - } - - protected HTMLGen clone(Writer w) { - return create(flags,w); - } -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.html; + +import java.io.IOException; +import java.io.Writer; + +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.xgen.CacheGen; +import org.onap.aaf.misc.xgen.Code; + +public class HTMLCacheGen extends CacheGen { + protected int flags; + + public HTMLCacheGen(int flags, Code code) throws APIException,IOException { + super(flags, code); + this.flags = flags; + } + + @Override + public HTMLGen create(int htmlStyle, Writer w) { + HTMLGen hg; + switch(htmlStyle&(CacheGen.HTML4|CacheGen.HTML5)) { + case CacheGen.HTML4: + hg = new HTML4Gen(w); + break; + case CacheGen.HTML5: + default: + hg = new HTML5Gen(w); + break; + + } + hg.pretty = (htmlStyle&CacheGen.PRETTY)>0; + return hg; + } + + protected HTMLGen clone(Writer w) { + return create(flags,w); + } +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLGen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLGen.java index 92a89d7d..c3359745 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLGen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTMLGen.java @@ -1,240 +1,240 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.html; - -import java.io.Writer; - -import org.onap.aaf.misc.xgen.Mark; -import org.onap.aaf.misc.xgen.XGen; - -public abstract class HTMLGen extends XGen { - public static final String A = "a"; - public static final String P = "p"; - public static final String LI = "li"; - public static final String OL = "ol"; - public static final String UL = "ul"; - - - public static final String TABLE = "table"; - public static final String THEAD = "thead"; - public static final String TBODY = "tbody"; - public static final String TR = "tr"; - public static final String TH = "th"; - public static final String TD = "td"; - - public static final String TITLE = "title"; - public static final String H1 = "h1"; - public static final String H2 = "h2"; - public static final String H3 = "h3"; - public static final String H4 = "h4"; - public static final String H5 = "h5"; - - - - // --------------------------- HTML Version Specific ----------------------- - public abstract HTMLGen html(String ... attributes); - public abstract HTMLGen charset(String charset); - public abstract Mark head(); - public abstract Mark body(String ... attribs); - - - // HTML 5 has simplified sectioning - public abstract Mark header(String ... attribs); - public abstract Mark footer(String ... attribs); - public abstract Mark section(String ... attribs); - public abstract Mark article(String ... attribs); - public abstract Mark aside(String ... attribs); - public abstract Mark nav(String ... attribs); - - // --------------------------- HTML Version Specific ----------------------- - - public HTMLGen imports(Imports imports) { - //this.imports=imports; - for(String str : imports.css) { - forward.print(""); - } - - for(String str : imports.js) { - forward.print(""); - } - return this; - } - - public HTMLGen jsVars(String ... attrs) { - forward.println(""); - return this; - } - - public HTMLGen(Writer w) { - super(w); - } - - /** - * Use "directive" to handle non-ended HTML tags like and - * @param tag - * @param attrs - * @return - */ - public HTMLGen directive(String tag, String ... attrs) { - forward.append('<'); - forward.append(tag); - addAttrs(attrs); - forward.append('>'); - if(pretty) { - forward.println(); - } - return this; - } - - public Mark divID(String ... attrs) { - Mark div; - if(attrs.length>0) { - div = new Mark(attrs[0]); - attrs[0]="id="+attrs[0]; - } else { - div = new Mark(); - } - incr(div, "div", attrs); - return div; - } - - public HTMLGen img(String ... attrs) { - return tagOnly("img", attrs); - } - - /** - * Input Cheesecake... creates a Label and Field in the form of Table Rows. - * Make sure you create a table first, ie. incr(HTMLGen.TABLE); - * - * Setting Required to "true" will add required Attribute to both Label and Field. In HTML5, "required" in the input will - * validate there is data in the fields before submitting. "required" does nothing for label, but allows for - * easy CSS coding... "label[required] { ... }", so that colors can be changed - * - * @param id - * @param label - * @param required - * @param attrs - * @return - */ - public HTMLGen input(String id, String label, boolean required, String ... attrs) { - Mark mtr = new Mark(TR); - Mark mtd = new Mark(TD); - incr(mtr); - incr(mtd); - incr("label",true, "for="+id,required?"required":null).text(label).end(); - end(mtd); - String nattrs[] = new String[attrs.length+(required?3:2)]; - nattrs[0]="id="+id; - nattrs[1]="name="+id; - System.arraycopy(attrs, 0, nattrs, 2, attrs.length); - if(required) { - nattrs[nattrs.length-1]="required"; - } - incr(mtd); - tagOnly("input",nattrs); - end(mtr); - return this; - } - - // Common tags that do not have standard endings. These are here to help people who don't know to pick directive - public HTMLGen br() { - forward.append("
"); - if(pretty) { - forward.println(); - } - return this; - } - - public HTMLGen p(String ... text) { - forward.append("

"); - for(String s : text) { - forward.append(s); - } - if(pretty) { - forward.println(); - } - return this; - } - - public HTMLGen hr() { - forward.append("


"); - if(pretty) { - forward.println(); - } - return this; - } - - public JSGen js(Mark mark) { - return new JSGen(mark, this); - } - - public JSGen js() { - return js(null); - } -// -// protected void cssInline(String filename) { -// File file = new File(imports.webDir,filename); -// try { -// String line; -// BufferedReader br = new BufferedReader(new FileReader(file)); -// try { -// forward.print(""); -// prettyln(forward); -// br.close(); -// } -// } catch (IOException e) { -// e.printStackTrace(); -// // Can't read, suffice to import normally? -// // for now, just skip -// } -// } - -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.html; + +import java.io.Writer; + +import org.onap.aaf.misc.xgen.Mark; +import org.onap.aaf.misc.xgen.XGen; + +public abstract class HTMLGen extends XGen { + public static final String A = "a"; + public static final String P = "p"; + public static final String LI = "li"; + public static final String OL = "ol"; + public static final String UL = "ul"; + + + public static final String TABLE = "table"; + public static final String THEAD = "thead"; + public static final String TBODY = "tbody"; + public static final String TR = "tr"; + public static final String TH = "th"; + public static final String TD = "td"; + + public static final String TITLE = "title"; + public static final String H1 = "h1"; + public static final String H2 = "h2"; + public static final String H3 = "h3"; + public static final String H4 = "h4"; + public static final String H5 = "h5"; + + + + // --------------------------- HTML Version Specific ----------------------- + public abstract HTMLGen html(String ... attributes); + public abstract HTMLGen charset(String charset); + public abstract Mark head(); + public abstract Mark body(String ... attribs); + + + // HTML 5 has simplified sectioning + public abstract Mark header(String ... attribs); + public abstract Mark footer(String ... attribs); + public abstract Mark section(String ... attribs); + public abstract Mark article(String ... attribs); + public abstract Mark aside(String ... attribs); + public abstract Mark nav(String ... attribs); + + // --------------------------- HTML Version Specific ----------------------- + + public HTMLGen imports(Imports imports) { + //this.imports=imports; + for(String str : imports.css) { + forward.print(""); + } + + for(String str : imports.js) { + forward.print(""); + } + return this; + } + + public HTMLGen jsVars(String ... attrs) { + forward.println(""); + return this; + } + + public HTMLGen(Writer w) { + super(w); + } + + /** + * Use "directive" to handle non-ended HTML tags like and + * @param tag + * @param attrs + * @return + */ + public HTMLGen directive(String tag, String ... attrs) { + forward.append('<'); + forward.append(tag); + addAttrs(attrs); + forward.append('>'); + if(pretty) { + forward.println(); + } + return this; + } + + public Mark divID(String ... attrs) { + Mark div; + if(attrs.length>0) { + div = new Mark(attrs[0]); + attrs[0]="id="+attrs[0]; + } else { + div = new Mark(); + } + incr(div, "div", attrs); + return div; + } + + public HTMLGen img(String ... attrs) { + return tagOnly("img", attrs); + } + + /** + * Input Cheesecake... creates a Label and Field in the form of Table Rows. + * Make sure you create a table first, ie. incr(HTMLGen.TABLE); + * + * Setting Required to "true" will add required Attribute to both Label and Field. In HTML5, "required" in the input will + * validate there is data in the fields before submitting. "required" does nothing for label, but allows for + * easy CSS coding... "label[required] { ... }", so that colors can be changed + * + * @param id + * @param label + * @param required + * @param attrs + * @return + */ + public HTMLGen input(String id, String label, boolean required, String ... attrs) { + Mark mtr = new Mark(TR); + Mark mtd = new Mark(TD); + incr(mtr); + incr(mtd); + incr("label",true, "for="+id,required?"required":null).text(label).end(); + end(mtd); + String nattrs[] = new String[attrs.length+(required?3:2)]; + nattrs[0]="id="+id; + nattrs[1]="name="+id; + System.arraycopy(attrs, 0, nattrs, 2, attrs.length); + if(required) { + nattrs[nattrs.length-1]="required"; + } + incr(mtd); + tagOnly("input",nattrs); + end(mtr); + return this; + } + + // Common tags that do not have standard endings. These are here to help people who don't know to pick directive + public HTMLGen br() { + forward.append("
"); + if(pretty) { + forward.println(); + } + return this; + } + + public HTMLGen p(String ... text) { + forward.append("

"); + for(String s : text) { + forward.append(s); + } + if(pretty) { + forward.println(); + } + return this; + } + + public HTMLGen hr() { + forward.append("


"); + if(pretty) { + forward.println(); + } + return this; + } + + public JSGen js(Mark mark) { + return new JSGen(mark, this); + } + + public JSGen js() { + return js(null); + } +// +// protected void cssInline(String filename) { +// File file = new File(imports.webDir,filename); +// try { +// String line; +// BufferedReader br = new BufferedReader(new FileReader(file)); +// try { +// forward.print(""); +// prettyln(forward); +// br.close(); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// // Can't read, suffice to import normally? +// // for now, just skip +// } +// } + +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Imports.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Imports.java index 90e82607..fa51719a 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Imports.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Imports.java @@ -1,98 +1,98 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.html; - -import java.util.ArrayList; -import java.util.List; - -public class Imports implements Thematic{ - List css,js; - public final int backdots; -// public final File webDir; - private String theme; - - public Imports(int backdots) { -// this.webDir = webDir; - - css = new ArrayList(); - js = new ArrayList(); - this.backdots = backdots; - theme = ""; - } - - public Imports css(String str) { - css.add(str); - return this; - } - - public Imports js(String str) { - js.add(str); - return this; - } - - public Imports theme(String str) { - theme = str==null?"":str; - return this; - } - - /** - * Pass in a possible Theme. If it is "" or null, it will resolve to default Theme set in Imports - * - * @param theTheme - * @return - */ - @Override - public String themePath(String theTheme) { - StringBuilder src = dots(new StringBuilder()); - if(theTheme==null||theTheme.length()==0) { - src.append(theme); - if(theme.length()>0)src.append('/'); - } else { - src.append(theTheme); - src.append('/'); - } - - return src.toString(); - } - - /** - * Pass in a possible Theme. If it is "" or null, it will resolve to default Theme set in Imports - * - * @param theTheme - * @return - */ - @Override - public String themeResolve(String theTheme) { - return (theTheme==null||theTheme.length()==0) - ?theme - :theTheme; - } - - public StringBuilder dots(StringBuilder src) { - for(int i=0;i css,js; + public final int backdots; +// public final File webDir; + private String theme; + + public Imports(int backdots) { +// this.webDir = webDir; + + css = new ArrayList(); + js = new ArrayList(); + this.backdots = backdots; + theme = ""; + } + + public Imports css(String str) { + css.add(str); + return this; + } + + public Imports js(String str) { + js.add(str); + return this; + } + + public Imports theme(String str) { + theme = str==null?"":str; + return this; + } + + /** + * Pass in a possible Theme. If it is "" or null, it will resolve to default Theme set in Imports + * + * @param theTheme + * @return + */ + @Override + public String themePath(String theTheme) { + StringBuilder src = dots(new StringBuilder()); + if(theTheme==null||theTheme.length()==0) { + src.append(theme); + if(theme.length()>0)src.append('/'); + } else { + src.append(theTheme); + src.append('/'); + } + + return src.toString(); + } + + /** + * Pass in a possible Theme. If it is "" or null, it will resolve to default Theme set in Imports + * + * @param theTheme + * @return + */ + @Override + public String themeResolve(String theTheme) { + return (theTheme==null||theTheme.length()==0) + ?theme + :theTheme; + } + + public StringBuilder dots(StringBuilder src) { + for(int i=0;i0) ipw.print(' '); - ipw.print(el); - } - } - ipw.println(); - } else { - ipw.print(line.trim()); - } - } - } finally { - htmlGen.setIndent(indent); - try { - br.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - return this; - } - - public JSGen pst(String ... lines) { - return pst(null, lines); - } - - public JSGen pst(Mark jm, String ... lines) { - if(lines.length>0) ipw.append(lines[0]); - ipw.append('('); - for(int i=1;i0)ipw.println(); - ipw.print(lines[i]); - } - ipw.setIndent(current); - ipw.append(';'); - if(htmlGen.pretty)ipw.println(); - return this; - } - - public JSGen text(String text) { - ipw.append(text); - if(htmlGen.pretty)ipw.println(); - return this; - } - - public JSGen function(String name, String ... params) { - return function(null, name, params); - } - - public JSGen jqfunc(Mark mark, String name, String ... params) { - pst(mark,"$").function(name, params); - return this; - } - - public JSGen function(Mark jm, String name, String ... params) { - ipw.print("function "); - ipw.print(name); - ipw.print('('); - for(int i=0;i0)ipw.println(); - ipw.print(lines[i]); - } - ipw.setIndent(current); - ipw.print('{'); - if(htmlGen.pretty) { - ipw.println(); - ipw.inc(); - } - int spot = htmlGen.pushBack(new Back("}",true,true)); - if(jm!=null)jm.spot(spot); - return this; - - } - - - public JSGen comment(String ... lines) { - if(htmlGen.pretty) { - for(int i=0;i0) ipw.print(' '); + ipw.print(el); + } + } + ipw.println(); + } else { + ipw.print(line.trim()); + } + } + } finally { + htmlGen.setIndent(indent); + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return this; + } + + public JSGen pst(String ... lines) { + return pst(null, lines); + } + + public JSGen pst(Mark jm, String ... lines) { + if(lines.length>0) ipw.append(lines[0]); + ipw.append('('); + for(int i=1;i0)ipw.println(); + ipw.print(lines[i]); + } + ipw.setIndent(current); + ipw.append(';'); + if(htmlGen.pretty)ipw.println(); + return this; + } + + public JSGen text(String text) { + ipw.append(text); + if(htmlGen.pretty)ipw.println(); + return this; + } + + public JSGen function(String name, String ... params) { + return function(null, name, params); + } + + public JSGen jqfunc(Mark mark, String name, String ... params) { + pst(mark,"$").function(name, params); + return this; + } + + public JSGen function(Mark jm, String name, String ... params) { + ipw.print("function "); + ipw.print(name); + ipw.print('('); + for(int i=0;i0)ipw.println(); + ipw.print(lines[i]); + } + ipw.setIndent(current); + ipw.print('{'); + if(htmlGen.pretty) { + ipw.println(); + ipw.inc(); + } + int spot = htmlGen.pushBack(new Back("}",true,true)); + if(jm!=null)jm.spot(spot); + return this; + + } + + + public JSGen comment(String ... lines) { + if(htmlGen.pretty) { + for(int i=0;i { -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.html; + +import org.onap.aaf.misc.env.Env; + +public interface State { +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Thematic.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Thematic.java index 98835dc5..5b08efb4 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Thematic.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/Thematic.java @@ -1,27 +1,27 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.html; - -public interface Thematic { - String themePath(String theTheme); - String themeResolve(String theTheme); -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.html; + +public interface Thematic { + String themePath(String theTheme); + String themeResolve(String theTheme); +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLCacheGen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLCacheGen.java index 16ce436b..b274fef9 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLCacheGen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLCacheGen.java @@ -1,45 +1,45 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.xml; - -import java.io.IOException; -import java.io.Writer; - -import org.onap.aaf.misc.env.APIException; -import org.onap.aaf.misc.xgen.CacheGen; -import org.onap.aaf.misc.xgen.Code; - -public class XMLCacheGen extends CacheGen { - - public XMLCacheGen(int flags, Code code) throws APIException, - IOException { - super(flags, code); - } - - @Override - public XMLGen create(int style, Writer w) { - XMLGen xg = new XMLGen(w); - xg.pretty = (style & PRETTY)==PRETTY; - return xg; - } - -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.xml; + +import java.io.IOException; +import java.io.Writer; + +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.xgen.CacheGen; +import org.onap.aaf.misc.xgen.Code; + +public class XMLCacheGen extends CacheGen { + + public XMLCacheGen(int flags, Code code) throws APIException, + IOException { + super(flags, code); + } + + @Override + public XMLGen create(int style, Writer w) { + XMLGen xg = new XMLGen(w); + xg.pretty = (style & PRETTY)==PRETTY; + return xg; + } + +} diff --git a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLGen.java b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLGen.java index 18945672..6683c627 100644 --- a/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLGen.java +++ b/misc/xgen/src/main/java/org/onap/aaf/misc/xgen/xml/XMLGen.java @@ -1,44 +1,44 @@ -/** - * ============LICENSE_START==================================================== - * org.onap.aaf - * =========================================================================== - * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END==================================================== - * - */ - -package org.onap.aaf.misc.xgen.xml; - -import java.io.Writer; - -import org.onap.aaf.misc.xgen.XGen;; - -public class XMLGen extends XGen { - private final String XML_TAG; - - public XMLGen(Writer w) { - this(w,"UTF-8"); - } - - public XMLGen(Writer w, String encoding) { - super(w); - XML_TAG=""; - } - - public XMLGen xml() { - forward.println(XML_TAG); - return this; - } -} +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.xml; + +import java.io.Writer; + +import org.onap.aaf.misc.xgen.XGen;; + +public class XMLGen extends XGen { + private final String XML_TAG; + + public XMLGen(Writer w) { + this(w,"UTF-8"); + } + + public XMLGen(Writer w, String encoding) { + super(w); + XML_TAG=""; + } + + public XMLGen xml() { + forward.println(XML_TAG); + return this; + } +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_BackTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_BackTest.java new file mode 100644 index 00000000..6a3eb15e --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_BackTest.java @@ -0,0 +1,37 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class JU_BackTest { + + @Test + public void testBackConstructor() { + Back back = new Back("String", true, false); + + assertEquals(back.str, "String"); + assertEquals(back.dec, true); + assertEquals(back.cr, false); + } +} \ No newline at end of file diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_MarkTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_MarkTest.java new file mode 100644 index 00000000..200bde6e --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_MarkTest.java @@ -0,0 +1,41 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class JU_MarkTest { + + @Test + public void testMark() { + Mark mark = new Mark(); + assertEquals(mark.spot, 0); + assertEquals(mark.comment, null); + + mark = new Mark("New Comment"); + mark.spot(10); + assertEquals(mark.spot, 10); + assertEquals(mark.comment, "New Comment"); + + } +} \ No newline at end of file diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_NullCacheTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_NullCacheTest.java new file mode 100644 index 00000000..5b5f816a --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_NullCacheTest.java @@ -0,0 +1,35 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.aaf.misc.xgen.Cache.Null; + +public class JU_NullCacheTest { + + @Test + public void testNullIsSingleton() { + Null singleton = Cache.Null.singleton(); + assertEquals(singleton, Cache.Null.singleton()); + } +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_SectionTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_SectionTest.java new file mode 100644 index 00000000..a45ea158 --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/JU_SectionTest.java @@ -0,0 +1,64 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import java.io.IOException; +import java.io.Writer; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.onap.aaf.misc.env.APIException; + +public class JU_SectionTest { + + @Mock + private Writer writer; + + @Before + public void setup() { + writer = mock(Writer.class); + } + + @Test + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void test() throws APIException, IOException { + Section section = new Section(); + section.forward = "Forward"; + section.backward = "Backward"; + + section.setIndent(10); + section.forward(writer); + section.back(writer); + + assertEquals(section.use(null, null, null), section); + assertEquals(section.getIndent(), 10); + assertEquals(section.toString(), "Forward"); + + verify(writer).write("Forward"); + verify(writer).write("Backward"); + } + +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML4GenTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML4GenTest.java new file mode 100644 index 00000000..18b33938 --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML4GenTest.java @@ -0,0 +1,315 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen.html; + +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; +import java.util.TreeMap; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; + +public class JU_HTML4GenTest { + + private final static String DOCTYPE = ""; + + private String charset = "utf-8"; + + private final String CHARSET_LINE = ""; + + @Mock + Writer w; + + @Before + public void setUp() throws Exception { + + w = mock(Writer.class); + } + + @Test + public void testHTML() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.html("attributes"); + + Map map = new TreeMap(); + for (char ch : DOCTYPE.toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "html".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + verify(w, atLeast(1)).write(anyInt()); + } + + @Test + public void testHead() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.head(); + + Map map = new TreeMap(); + + for (char ch : "head".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testBody() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.body("attributes"); + + Map map = new TreeMap(); + + for (char ch : "body".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testCharSet() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.charset(charset); + + Map map = new TreeMap(); + + for (char ch : CHARSET_LINE.toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testHeader() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.header("attributes"); + + Map map = new TreeMap(); + + for (char ch : "header".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "div".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testFooter() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.footer("attributes"); + + Map map = new TreeMap(); + + for (char ch : "footer".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "div".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testSection() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.section("attributes"); + + Map map = new TreeMap(); + + for (char ch : "section".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "div".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testArticle() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.article("attributes"); + + Map map = new TreeMap(); + + for (char ch : "attrib".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "div".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testAside() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.aside("attributes"); + + Map map = new TreeMap(); + + for (char ch : "aside".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "div".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testNav() throws IOException { + + HTML4Gen gen = new HTML4Gen(w); + + gen.nav("attributes"); + + Map map = new TreeMap(); + + for (char ch : "nav".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "div".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML5GenTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML5GenTest.java new file mode 100644 index 00000000..953a4a3b --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_HTML5GenTest.java @@ -0,0 +1,135 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen.html; + +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; +import java.util.TreeMap; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; + +public class JU_HTML5GenTest { + + private final static String DOCTYPE = ""; + + private String charset = "utf-8"; + + private final String CHARSET_LINE = ""; + + @Mock + Writer w; + + @Before + public void setUp() throws Exception { + + w = mock(Writer.class); + } + + @Test + public void testHTML() throws IOException { + + HTML5Gen gen = new HTML5Gen(w); + + gen.html("attributes"); + + Map map = new TreeMap(); + + for (char ch : "html".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + verify(w, atLeast(1)).write(anyInt()); + } + + @Test + public void testHead() throws IOException { + + HTML5Gen gen = new HTML5Gen(w); + + gen.head(); + + Map map = new TreeMap(); + + for (char ch : "head".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testBody() throws IOException { + + HTML5Gen gen = new HTML5Gen(w); + + gen.body("attributes"); + + Map map = new TreeMap(); + + for (char ch : "body".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + for (char ch : "attributes".toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } + + @Test + public void testCharSet() throws IOException { + + HTML5Gen gen = new HTML5Gen(w); + + gen.charset(charset); + + Map map = new TreeMap(); + + for (char ch : CHARSET_LINE.toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(w, atLeast(map.get(ch))).write(ch); + } + } +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_ImportsTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_ImportsTest.java new file mode 100644 index 00000000..4a6ce6b8 --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/html/JU_ImportsTest.java @@ -0,0 +1,54 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen.html; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; + +public class JU_ImportsTest { + + @Before + public void setUp() throws Exception { + } + + @Test + public void test() { + Imports imports = new Imports(2); + imports.css("styles.css"); + imports.js("main.js"); + imports.theme("New Theme"); + + assertEquals("New Theme", imports.themeResolve(null)); + assertEquals("New Theme", imports.themeResolve("")); + assertEquals("The Theme", imports.themeResolve("The Theme")); + + assertEquals("build/../../", imports.dots(new StringBuilder("build/")).toString()); + assertEquals("../../Theme/", imports.themePath("Theme")); + assertEquals("../../New Theme/", imports.themePath("")); + assertEquals("../../New Theme/", imports.themePath(null)); + + imports.theme(null); + assertEquals("../../", imports.themePath(null)); + } + +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLCacheGenTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLCacheGenTest.java new file mode 100644 index 00000000..c8014dda --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLCacheGenTest.java @@ -0,0 +1,63 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ +package org.onap.aaf.misc.xgen.xml; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import java.io.IOException; +import java.io.Writer; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.onap.aaf.misc.env.APIException; +import org.onap.aaf.misc.xgen.Code; + +public class JU_XMLCacheGenTest { + + @Mock + Writer writer; + + @Mock + Code code; + + @Before + public void setup() { + + code = mock(Code.class); + writer = mock(Writer.class); + } + + @Test + public void test() throws APIException, IOException { + XMLCacheGen cacheGen = new XMLCacheGen(0, code); + assertEquals(cacheGen.PRETTY, 1); + + XMLGen xgen = cacheGen.create(1, writer); + assertEquals(0, xgen.getIndent()); + + xgen.setIndent(10); + assertEquals(10, xgen.getIndent()); + xgen.comment("Comment"); + } + +} diff --git a/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLGenTest.java b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLGenTest.java new file mode 100644 index 00000000..2dbc422a --- /dev/null +++ b/misc/xgen/src/test/java/org/onap/aaf/misc/xgen/xml/JU_XMLGenTest.java @@ -0,0 +1,66 @@ +/** + * ============LICENSE_START==================================================== + * org.onap.aaf + * =========================================================================== + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * =========================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END==================================================== + * + */ + +package org.onap.aaf.misc.xgen.xml; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; +import java.util.TreeMap; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; + +public class JU_XMLGenTest { + + @Mock + private Writer writer; + + String XML_TAG = ""; + + Map map = new TreeMap(); + + @Before + public void setUp() throws Exception { + writer = mock(Writer.class); + } + + @Test + public void testXMLGenWriter() throws IOException { + XMLGen xmlGen = new XMLGen(writer); + + xmlGen.xml(); + + for (char ch : XML_TAG.toCharArray()) { + Integer times = map.get(ch); + map.put(ch, (times == null ? 0 : times) + 1); + } + + for (char ch : map.keySet()) { + verify(writer, times(map.get(ch))).write(ch); + } + } +} \ No newline at end of file -- 2.16.6