From 663b927bdbda59ac84015e91995190be6e09dd51 Mon Sep 17 00:00:00 2001 From: Willem Date: Wed, 22 Oct 2025 19:30:06 +0200 Subject: [PATCH 1/9] FC18: maisdoc fixed nav link reset bug in pages and sub concepts --- .../nx01/mushroom/mais/fc18/FCDocWriter.java | 4 +- .../mais/fc18/print/FCDocPageWriterNCR.java | 18 +++-- .../fc18/print/FCDocSegmentWriterCake.java | 69 ++++++++++++++----- .../fc18/zion7/FourCornerZion7Candlelier.java | 2 +- .../fc18/zion7/FourCornerZionStenoLexer.java | 16 ++--- .../java/org/x4o/maisdoc/model/MaisDoc.java | 3 + .../org/x4o/maisdoc/model/MaisDocNavLink.java | 1 + 7 files changed, 77 insertions(+), 36 deletions(-) diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java index 971ce21..e1acab9 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java @@ -157,7 +157,7 @@ public class FCDocWriter { doc.setDescription("FourCorner 18 bit text encoding format."); doc.setDocAbout("FourCorner Indexes\nThe World Of Words™"); doc.createDocCopyright("𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡𑀪𑀸𑀕", "תשפ״ה"); // use hebrew quotation mark, the interweb uses latin which break unicode rendering - doc.setDocPageSubTitle("FC18-Alpha1"); + doc.setDocPageSubTitle("FC18-Alpha2"); doc.addMetaKeywordAll(List.of("FC18", "documentation", "four-corner", "china", "MSX4")); doc.setNoFrameAllName("All cake slices"); doc.setFrameNavOverviewPrintParent(true); @@ -252,7 +252,7 @@ public class FCDocWriter { } private MaisDocNode createNodeKanjiDict(String version) { - return new MaisDocNode(kanjiDict, "jis_x_0" + version, "JIS X 0" + version, "Kanji JIS X 0" + version); + return new MaisDocNode(kanjiDict, "jis_x_0" + version, "JIS X 0" + version, "Reference Kanji JIS X 0" + version); } private MaisDocNode createNodeKanjiDictLiteral(KanjiDictLiteral literal, String kuTen) { diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocPageWriterNCR.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocPageWriterNCR.java index 5390d53..4ae444a 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocPageWriterNCR.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocPageWriterNCR.java @@ -23,13 +23,15 @@ package love.distributedrebirth.nx01.mushroom.mais.fc18.print; import java.io.IOException; +import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import org.x4o.fc18.FourCornerUnicodeDisplay; import org.x4o.fc18.cake2.FourCornerDotCake; -import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; -import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; +import org.x4o.fc18.zion7.FourCornerZion7Candlelier; +import org.x4o.fc18.zion7.FourCornerZionStenoGrapher; +import org.x4o.fc18.zion7.flame4.FCFlameNumberTaste; import org.x4o.maisdoc.flake.MaisDocContentCss; import org.x4o.maisdoc.flake.MaisDocContentWriter; import org.x4o.maisdoc.model.MaisDocPage; @@ -47,7 +49,7 @@ import org.x4o.sax3.io.ContentCloseable; public class FCDocPageWriterNCR implements MaisDocPageWriter, FCDocSegmentWriter { public static MaisDocPage createDocPage() { - return new MaisDocPage("overview-ncr","NCR","Overview of all (6 bit) NCR1632 fractions.",new FCDocPageWriterNCR()); + return new MaisDocPage("overview-ncr","NCR","Overview of some New Counting Rods numbers.",new FCDocPageWriterNCR()); } // TODO: write adult NCR too here @@ -56,7 +58,7 @@ public class FCDocPageWriterNCR implements MaisDocPageWriter, FCDocSegmentWriter public void writePageContent(MaisDocWriteEvent e) throws IOException { MaisDocContentWriter writer = e.getWriter(); try (ContentCloseable content = writer.docPageContent()) { - try (ContentCloseable table = writer.docTable(FourCornerDotCake.FC_RATIONAL2304_BANK.nameSpec().replaceAll("BANK", "baklava"), null, MaisDocContentCss.overviewSummary)) { + try (ContentCloseable table = writer.docTable(FourCornerDotCake.FC_RATIONAL2304_BANK.nameSpec().replaceAll("BANK", "number"), null, MaisDocContentCss.overviewSummary)) { writeTableBoxHeaderNumeric(writer, 28); writePIN(writer); } @@ -81,9 +83,11 @@ public class FCDocPageWriterNCR implements MaisDocPageWriter, FCDocSegmentWriter continue; } List piNum = new ArrayList<>(); - //piNum.addAll(FCDotDEC2701DashPX0.ESC68_NCR.baklavaPointSequence()); // TODO: use write for 18 bit NCR - piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + t); - piNum.add(FCDotCDC1604DashP6.NX01_A.ordinal() + i); + FourCornerZion7Candlelier steno = FourCornerZionStenoGrapher.writerFC18(piNum); + FCFlameNumberTaste taste = FCFlameNumberTaste.NUMBER_POSITIVE; + BigInteger numerator = BigInteger.valueOf(1 + t); + BigInteger denominator = BigInteger.valueOf(1 + i); + steno.strobeNumberChocoPigRational(taste, taste, numerator, denominator); String char18Str = FourCornerUnicodeDisplay.text().render(piNum); StringBuilder buf = new StringBuilder(); for (int c : char18Str.codePoints().toArray()) { diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java index 2896585..2a1d823 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java @@ -50,31 +50,44 @@ import love.distributedrebirth.nx01.mushroom.mais.fc18.TDocCakeSlice; */ public class FCDocSegmentWriterCake implements FCDocSegmentWriter { - private static final String[] FC_FEATURES = new String[] { + private static final String[] FC6_FEATURES = new String[] { + "True pure six bit enterprice mainframe numeric letter system", + "Super pattern graphic renderable with optional kerning", + "Real UPPERCASE only character set", + "Zero nummeric letters", + "Supports HolyC sand worms in your text for undefined octal data", + "Render structural space with a percentage pastor", + "Group nun lines up to 8 repeating structures", + "Inline base2 lego: 16,32,64,128,256,512,1024,2048 bit blocks", + "Inline base2 signed: 16,32,64,128,256,512,1024,2048 integer", + "Inline base8 lego: 18,36,72,144,288,576,1152,2304 bit blocks", + "Inline base8 choco: 18,36,72,144,288,576,1152,2304 tasteful number", + "Defined external escape sequence model", + "(TODO) VT-06 terminal control for CDC1604(1960) 6 bit main frames", + }; + private static final String[] FC6P_FEATURES = new String[] { + "(TODO) Adds unified russian/greek and brascii candy letters", + "Block your display candy for text user interfaces", + "Has underscored letters to migrate EBCDIC(1963) APL code from z/OS", + }; + private static final String[] FC18_FEATURES = new String[] { "Text format design to write computer code and abstract file/resource names", "Code from chinees child can be extended by indian child or spanish child in local local", - //"VT-06 terminal control for CDC1604(1960) 6 bit main frames", - "Has underscored letters to migrate EBCDIC(1963) APL code from z/OS", "Program with (local) words not with lettersssss", - "New Counting Rods, 1152 bit fractions with two 576 bit numbers", - "Use datagrams for decimals/octals/hex/bits to render in monkey language", - "Supports HolyC sand worms in your text for undefined octal data", - "Embed 21 bit unicode for 6/8 and 18 bit computers", - "The lower 6/8 bit part is pattern graphic renderable with optional kerning", - "Contains the BIP0039(2013) keyword encoding too", - "Render on 6 bit(baklave point) or 8(muffin point) bit as KANJI + BraSCII + PIE", + "Inline number grams for decimals/octals/hex/bits to render in monkey language", + "Inline choco pig rational 2304 bit number", + "Inline choco pig decicmal 2304 bit number", + "Inline choco pig float 2304 bit number", + "Inline choco pig chopped 2304 bit number", + "(TODO) Render on 6 bit(baklave point) as KANJI + BraSCII + PIE(-rom)", "Render with 21 bit unicode(code point) + fonts drawings", - "Render on 18 bit(cake point) with 72 bit unicode4D drawings" + "(TODO) Render on 18 bit(cake point) with 72 bit unicode4D drawings" }; private static final String[] FC_TODO = new String[] { "DOC: Add all needed info into word/pie/pages doc", - "Write rules; no candy(0x3F3--) for grown up computer languages", - "Finish ESC sequences", "Add doctype for 6,8,18 AND allow candy AND XDBX/etc", "Add binary XML support, maybe also doc tags and MD structure", - "Move APL candy to PIE towers", - "Replace APL with BraSCII 0xC0++ candies", "Fillup PIE math symbol candy towers", "Fillup languages in CLK9P word cake (in all human languages)", "Request new 'Japanese Industrial Standard X 0214', Add full CJK,BraSCII++,PIE", @@ -100,10 +113,30 @@ public class FCDocSegmentWriterCake implements FCDocSegmentWriter { @MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 20) public void writeFeatureListing(MaisDocWriteEvent event) throws IOException { MaisDocContentWriter writer = event.getWriter(); - writer.printCharacters("Features;"); + writer.printCharacters("FC6;"); try (ContentCloseable content = writer.docPageContent()) { try (ContentCloseable ul = writer.printTag(Tag.ul)) { - for (String feature : FC_FEATURES) { + for (String feature : FC6_FEATURES) { + try (ContentCloseable li = writer.printTag(Tag.li, "", null, "circle")) { + writer.printCharacters(feature); + } + } + } + } + writer.printCharacters("FC6_PLUS;"); + try (ContentCloseable content = writer.docPageContent()) { + try (ContentCloseable ul = writer.printTag(Tag.ul)) { + for (String feature : FC6P_FEATURES) { + try (ContentCloseable li = writer.printTag(Tag.li, "", null, "circle")) { + writer.printCharacters(feature); + } + } + } + } + writer.printCharacters("FC18;"); + try (ContentCloseable content = writer.docPageContent()) { + try (ContentCloseable ul = writer.printTag(Tag.ul)) { + for (String feature : FC18_FEATURES) { try (ContentCloseable li = writer.printTag(Tag.li, "", null, "circle")) { writer.printCharacters(feature); } @@ -115,7 +148,7 @@ public class FCDocSegmentWriterCake implements FCDocSegmentWriter { @MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 1) public void writeIntro(MaisDocWriteEvent event) throws IOException { MaisDocContentWriter writer = event.getWriter(); - writer.printCharacters("Four corner is 18 bit text encoding for 144 bit computers."); + writer.printCharacters("Four corner is 18 bit text encoding for 6 bit and 144 bit computers."); } @MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 100) diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7Candlelier.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7Candlelier.java index 7dd7103..b11e6fe 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7Candlelier.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZion7Candlelier.java @@ -48,7 +48,7 @@ public interface FourCornerZion7Candlelier extends FourCornerZion7Bereshit { /// An choco pig floating point number. (4+1+283+2016) void strobeNumberChocoPigFloat(FCFlameNumberTaste taste, boolean bias, BigInteger exponent, BigInteger mantissa); - /// An choped pig point number. (4+1148+1152) + /// An chopped pig point number. (4+1148+1152) void strobeNumberChocoPigChoped(FCFlameNumberTaste taste, BigInteger quake, BigInteger fraction); // XDBX18: doom.wad uses (ARM) Q16.16 which is equal to the real (Texas) Q15.16 (because doom map like E2M3 = 6 bit float) diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java index 7e0ab0e..caa8e72 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java @@ -52,7 +52,7 @@ import org.x4o.fc18.zion7.flame4.FCFlameNumberSparklerSmoke; /// /// @author Willem Cazander /// @version 1.0 Jan 09, 2025 -public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs { +public class FourCornerZionStenoLexer { private final static FourCornerZionStenoLexerFire CLEAN_FIRE = new FourCornerZionStenoLexerFire.Adapter() {}; private final static FourCornerZionStenoLexerSmoke CLEAN_SMOKE = new FourCornerZionStenoLexerSmoke.Adapter() {}; @@ -64,7 +64,7 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs private final boolean handlerEscape; private final FourCornerZion7Candlelier handler; private final FourCornerZion7TempleScrolls handlerTempleScrolls; - private final int numberBank[] = new int[NCR_BANK_SIZE]; + private final int numberBank[] = new int[FourCornerZionStenoPetroglyphs.NCR_BANK_SIZE]; private List input; private int inputIndex = 0; private int currLine = 0; @@ -249,8 +249,8 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs } private void numberBankReset() { - for (int i = NCR_BANK_SIZE - NCR_ONE; i >= NCR_ZERO; i--) { - numberBank[i] = NCR_ZERO; + for (int i = FourCornerZionStenoPetroglyphs.NCR_BANK_SIZE - FourCornerZionStenoPetroglyphs.NCR_ONE; i >= FourCornerZionStenoPetroglyphs.NCR_ZERO; i--) { + numberBank[i] = FourCornerZionStenoPetroglyphs.NCR_ZERO; } } @@ -268,7 +268,7 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs private BigInteger numberBankReadBigPaged(int bankBits, int bankPageBegin) { BigInteger result = BigInteger.ZERO; - for (int i = bankPageBegin; i >= NCR_ZERO; i--) { + for (int i = bankPageBegin; i >= FourCornerZionStenoPetroglyphs.NCR_ZERO; i--) { int bankValue = numberBank[i]; result = result.add(BigInteger.valueOf(bankValue).shiftLeft(i * bankBits)); } @@ -276,15 +276,15 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs } private BigInteger numberBankReadBig8(int bankPageBegin) { - return numberBankReadBigPaged(NCR_BANK8_BITS, bankPageBegin); + return numberBankReadBigPaged(FourCornerZionStenoPetroglyphs.NCR_BANK8_BITS, bankPageBegin); } private BigInteger numberBankReadBig9(int bankPageBegin) { - return numberBankReadBigPaged(NCR_BANK9_BITS, bankPageBegin); + return numberBankReadBigPaged(FourCornerZionStenoPetroglyphs.NCR_BANK9_BITS, bankPageBegin); } private BigInteger numberBankReadBig12(int bankPageBegin) { - return numberBankReadBigPaged(NCR_BANK12_BITS, bankPageBegin); + return numberBankReadBigPaged(FourCornerZionStenoPetroglyphs.NCR_BANK12_BITS, bankPageBegin); } abstract static private class StenoScanner implements FourCornerZionStenoPetroglyphs { diff --git a/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDoc.java b/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDoc.java index 264a23b..644a00c 100644 --- a/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDoc.java +++ b/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDoc.java @@ -214,6 +214,8 @@ public class MaisDoc { public MaisDocConcept findConceptChildByNode(MaisDocNode node) { Class objClass = node.getUserData().getClass(); + return findConceptByClass(objClass); + /* Class parentClass = null; if (node.getParent()!=null) { parentClass = node.getParent().getUserData().getClass(); @@ -229,6 +231,7 @@ public class MaisDoc { } } return null; + */ } public List getRemoteClasses() { diff --git a/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocNavLink.java b/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocNavLink.java index 798af0e..64df60f 100644 --- a/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocNavLink.java +++ b/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocNavLink.java @@ -44,6 +44,7 @@ public class MaisDocNavLink { setHref(href); setTitle(title); setText(text); + setResetHref(resetHref); } /** From 17034ff036964b2e94a14d952dc7561c396bc769 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 23 Oct 2025 15:20:21 +0200 Subject: [PATCH 2/9] FC18: Small doc fixes --- .../nx01/mushroom/mais/fc18/FCDocWriter.java | 2 +- .../print/FCDocSegmentWriterCakeWord.java | 5 ++- .../org/x4o/fc18/cake2/FourCornerDotCake.java | 34 +++++++++---------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java index e1acab9..6208b38 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java @@ -215,7 +215,7 @@ public class FCDocWriter { MaisDocNode wordNode = sliceNode.addNode(createNodeCakeWord(dotCake, i)); if (FourCornerDotCake.FC_DEC2701_PX0.equals(dotCake)) { - if ("ESC68_INC0801_P8".equals(wordNode.getName())) { + if ("ESC6_INC0801_P8".equals(wordNode.getName())) { for (FCDotINC0801DashP8 vide : FCDotINC0801DashP8.values()) { wordNode.addNode(createNodeCakeWordEscape(vide, vide.name())); } diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCakeWord.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCakeWord.java index d5795a4..3c2d870 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCakeWord.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCakeWord.java @@ -117,7 +117,10 @@ public class FCDocSegmentWriterCakeWord implements FCDocSegmentWriter { x21CodeDisplay.get().codePointSequence().forEach(v -> buf.appendCodePoint(v)); value = buf.toString(); } - writer.docTableRow(name, value); + boolean empty = name.isEmpty() && value.isEmpty(); + if (!empty) { + writer.docTableRow(name, value); + } if (x06BaklavaSequence.isPresent()) { writeTableRowSequenceHex(writer, "Sequence-X06", 2, x06BaklavaSequence.get().baklavaPointSequence()); diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java index e0c62d2..7c09855 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/cake2/FourCornerDotCake.java @@ -363,22 +363,22 @@ public enum FourCornerDotCake { FC_BA2L2048_SEL0(0x0387FE, 256, "Number lego 2048 bit select"), FC_BA2L2048_BANK(0x0388FE, 256, "Number lego 2048 bit bank"), - FC_BA2I0016_SEL0(0x0389FE, 2, "Number integer 16 bit select"), - FC_BA2I0016_BANK(0x038A00, 256, "Number integer 16 bit bank"), - FC_BA2I0032_SEL0(0x038B00, 4, "Number integer 32 bit select"), - FC_BA2I0032_BANK(0x038B04, 256, "Number integer 32 bit bank"), - FC_BA2I0064_SEL0(0x038C04, 8, "Number integer 64 bit select"), - FC_BA2I0064_BANK(0x038C0C, 256, "Number integer 64 bit bank"), - FC_BA2I0128_SEL0(0x038D0C, 16, "Number integer 128 bit select"), - FC_BA2I0128_BANK(0x038D1C, 256, "Number integer 128 bit bank"), - FC_BA2I0256_SEL0(0x038E1C, 32, "Number integer 256 bit select"), - FC_BA2I0256_BANK(0x038E3C, 256, "Number integer 256 bit bank"), - FC_BA2I0512_SEL0(0x038F3C, 64, "Number integer 512 bit select"), - FC_BA2I0512_BANK(0x038F7C, 256, "Number integer 512 bit bank"), - FC_BA2I1024_SEL0(0x03907C, 128, "Number integer 1024 bit select"), - FC_BA2I1024_BANK(0x0390FC, 256, "Number integer 1024 bit bank"), - FC_BA2I2048_SEL0(0x0391FC, 256, "Number integer 2048 bit select"), - FC_BA2I2048_BANK(0x0392FC, 256, "Number integer 2048 bit bank"), + FC_BA2I0016_SEL0(0x0389FE, 2, "Number signed 16 bit select"), + FC_BA2I0016_BANK(0x038A00, 256, "Number signed 16 bit bank"), + FC_BA2I0032_SEL0(0x038B00, 4, "Number signed 32 bit select"), + FC_BA2I0032_BANK(0x038B04, 256, "Number signed 32 bit bank"), + FC_BA2I0064_SEL0(0x038C04, 8, "Number signed 64 bit select"), + FC_BA2I0064_BANK(0x038C0C, 256, "Number signed 64 bit bank"), + FC_BA2I0128_SEL0(0x038D0C, 16, "Number signed 128 bit select"), + FC_BA2I0128_BANK(0x038D1C, 256, "Number signed 128 bit bank"), + FC_BA2I0256_SEL0(0x038E1C, 32, "Number signed 256 bit select"), + FC_BA2I0256_BANK(0x038E3C, 256, "Number signed 256 bit bank"), + FC_BA2I0512_SEL0(0x038F3C, 64, "Number signed 512 bit select"), + FC_BA2I0512_BANK(0x038F7C, 256, "Number signed 512 bit bank"), + FC_BA2I1024_SEL0(0x03907C, 128, "Number signed 1024 bit select"), + FC_BA2I1024_BANK(0x0390FC, 256, "Number signed 1024 bit bank"), + FC_BA2I2048_SEL0(0x0391FC, 256, "Number signed 2048 bit select"), + FC_BA2I2048_BANK(0x0392FC, 256, "Number signed 2048 bit bank"), /// 16x512=8192+1020 cake points to embed base8 number types FC_BA8L0018_SEL0(0x0393FC, 2, "Number lego 18 bit select"), @@ -477,7 +477,7 @@ public enum FourCornerDotCake { int wrapCakePoint = start + i; if (wrapCakePoint >= (1024 - 12) && wrapCakePoint < 0x1400) { // after move use cake - final String wrapName = sliceName + "_" + String.format("0x%06X", wrapCakePoint); + final String wrapName = sliceName + "_" + String.format("%04d", 1 + (wrapCakePoint - start)); result.add(new FourCornerDotColleGram5() { @Override From 90dcccb97325b36cd4e47514a91687f550050009 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 23 Oct 2025 20:00:39 +0200 Subject: [PATCH 3/9] FC18: maisdoc root index updated features and todo texts --- .../nx01/mushroom/mais/fc18/FCDocWriter.java | 2 -- .../fc18/print/FCDocSegmentWriterCake.java | 32 +++++++++---------- .../mais/fc18/unicode/UnicodeDictTest.java | 6 ++++ 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java index 6208b38..c53d297 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/FCDocWriter.java @@ -185,8 +185,6 @@ public class FCDocWriter { MaisDocConcept adc3 = doc.addConcept(new MaisDocConcept(adc2,C_FC_SLICE,TDocCakeSlice.class)); MaisDocConcept adc4 = doc.addConcept(new MaisDocConcept(adc3,C_FC_WORD,TDocCakeWord.class)); - // TODO: Fixed 'navList' Tower/Cake/Word selection if child concept is used - MaisDocConcept sliceEscapeSeq = new MaisDocConcept(adc4,C_FC_ESC,TDocCakeWordEscape.class); adc4.addChildConcept(sliceEscapeSeq); diff --git a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java index 2a1d823..49303ed 100644 --- a/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java +++ b/nx01-mushroom-mais-fc18/src/main/java/love/distributedrebirth/nx01/mushroom/mais/fc18/print/FCDocSegmentWriterCake.java @@ -51,48 +51,46 @@ import love.distributedrebirth.nx01.mushroom.mais.fc18.TDocCakeSlice; public class FCDocSegmentWriterCake implements FCDocSegmentWriter { private static final String[] FC6_FEATURES = new String[] { - "True pure six bit enterprice mainframe numeric letter system", - "Super pattern graphic renderable with optional kerning", + "True pure six bit enterprice mainframe letter system", + "Easy pattern graphic renderable with optional kerning", "Real UPPERCASE only character set", - "Zero nummeric letters", - "Supports HolyC sand worms in your text for undefined octal data", - "Render structural space with a percentage pastor", + "Zero nummeric candy letters", + "Supports sand worms in your text for undefined octal data", + "Handle structural space with a percentage pastor", "Group nun lines up to 8 repeating structures", - "Inline base2 lego: 16,32,64,128,256,512,1024,2048 bit blocks", - "Inline base2 signed: 16,32,64,128,256,512,1024,2048 integer", - "Inline base8 lego: 18,36,72,144,288,576,1152,2304 bit blocks", - "Inline base8 choco: 18,36,72,144,288,576,1152,2304 tasteful number", + "Inline base2 lego and signed: 16,32,64,128,256,512,1024,2048 bit numbers", + "Inline base8 lego and choco: 18,36,72,144,288,576,1152,2304 bit numbers", "Defined external escape sequence model", "(TODO) VT-06 terminal control for CDC1604(1960) 6 bit main frames", }; private static final String[] FC6P_FEATURES = new String[] { + "Adds normal/bold/super and sub number candy letters", "(TODO) Adds unified russian/greek and brascii candy letters", "Block your display candy for text user interfaces", - "Has underscored letters to migrate EBCDIC(1963) APL code from z/OS", + "(FIX) Has underscored letters to migrate EBCDIC(1963) APL code from z/OS", }; private static final String[] FC18_FEATURES = new String[] { "Text format design to write computer code and abstract file/resource names", "Code from chinees child can be extended by indian child or spanish child in local local", "Program with (local) words not with lettersssss", "Inline number grams for decimals/octals/hex/bits to render in monkey language", + "Choco letter 4D taste has sign and carry(SIMD support) and 4D infinity.", "Inline choco pig rational 2304 bit number", "Inline choco pig decicmal 2304 bit number", "Inline choco pig float 2304 bit number", "Inline choco pig chopped 2304 bit number", - "(TODO) Render on 6 bit(baklave point) as KANJI + BraSCII + PIE(-rom)", - "Render with 21 bit unicode(code point) + fonts drawings", - "(TODO) Render on 18 bit(cake point) with 72 bit unicode4D drawings" + "(TODO) XDBX18: binary XML support", }; private static final String[] FC_TODO = new String[] { + "txt_words: render with 21 bit unicode(code point)", + "FC18: render with 72 bit (NEW) unicode4D drawings", + "FC6: render on (classic) MSX with KANJI + BraSCII + PIE(-rom)", "DOC: Add all needed info into word/pie/pages doc", "Add doctype for 6,8,18 AND allow candy AND XDBX/etc", - "Add binary XML support, maybe also doc tags and MD structure", "Fillup PIE math symbol candy towers", "Fillup languages in CLK9P word cake (in all human languages)", - "Request new 'Japanese Industrial Standard X 0214', Add full CJK,BraSCII++,PIE", - "Define unicode+4D and 'JIS X 0208' text or symbols for txt-grams (in all human languages)", - "Define unicode+4D and 'JIS X 0208' words for four corner words (in all human languages)", + "Define unicode+4D all text or symbols for everything in nether DB (in 32K++ human languages)", }; @MaisDocNodeWriterMethod(nodeBody = MaisDocNodeBody.DESCRIPTION_NODE, targetClasses = {TDocCake.class}, nodeBodyOrders = 30) diff --git a/nx01-mushroom-mais-fc18/src/test/java/love/distributedrebirth/nx01/mushroom/mais/fc18/unicode/UnicodeDictTest.java b/nx01-mushroom-mais-fc18/src/test/java/love/distributedrebirth/nx01/mushroom/mais/fc18/unicode/UnicodeDictTest.java index 9548cf0..2e1cb03 100644 --- a/nx01-mushroom-mais-fc18/src/test/java/love/distributedrebirth/nx01/mushroom/mais/fc18/unicode/UnicodeDictTest.java +++ b/nx01-mushroom-mais-fc18/src/test/java/love/distributedrebirth/nx01/mushroom/mais/fc18/unicode/UnicodeDictTest.java @@ -46,15 +46,21 @@ public class UnicodeDictTest { dict.parseXML(in); } System.out.println("======================================="); + int total = 0; + int totalBlock = 0; for (UnicodeDictLiteralBlock block : dict.getBlocks()) { + totalBlock += 1 + block.getEnd() - block.getStart(); List charList = dict.getLiterals(block); if (charList == null) { + System.out.println("Block ===================== NO CHARS: name=" + block.getName()); continue; } + total += charList.size(); System.out.println("Block size=" + charList.size() + " name=" + block.getName()); //for (UnicodeDictLiteral literal : charList) { // System.out.println("Literal: " + literal.getId() + " desc=" + literal.getDescription()); //} } + System.out.println("total chars: " + total + " of " + totalBlock); } } From 71b6073482e40ed0ab453f61f6d0524f4190c818 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 23 Oct 2025 20:02:00 +0200 Subject: [PATCH 4/9] JPP: Fixed bone terminator self type and finalized some methods --- .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java index 7afebe9..08104c8 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/TTꞱꞱᖟGateway.java @@ -208,7 +208,7 @@ public enum TTꞱꞱᖟGateway implements BãßᛗᚢᛗᛗᛉVū́ǘrChaliceEnu return BAKED_IN_PIES; } - static abstract private class BoneTerminatorBaseX> implements Terminator𓄯,BãßᛗᚢᛗᛗᛉBoneBabe𓄯 { + static abstract private class BoneTerminatorBaseX> implements Terminator𓄯,BãßᛗᚢᛗᛗᛉBoneBabe𓄯 { //protected final int slices; protected final int slice; private final Function creator; @@ -227,28 +227,52 @@ public enum TTꞱꞱᖟGateway implements BãßᛗᚢᛗᛗᛉVū́ǘrChaliceEnu } } @Override - public BãßBȍőnCoffinԲ thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ() { + final public BãßBȍőnCoffinԲ thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ() { return ghostsInAShell; } @Override - public int zerdinal() { + final public int zerdinal() { return slice; } @Override - public int zerdinalSpaceBoundary() { + final public int zerdinalSpaceBoundary() { return terminator注.slices(); } @Override - public T zerdinalMaterializeSpace(int zerdinal) { + final public T zerdinalMaterializeSpace(int zerdinal) { if (slice == zerdinal) { return thisᵀᴮᵒⁿᵉ(); // keep JVM identity equals to itself } return creator.apply(zerdinal); } @Override - public String abacusRȧñkName() { + final public String abacusRȧñkName() { return slice + "_" + terminator注.slices(); } + @Override + final public int hashCode() { + //return Objects.hash(slice, terminator注.slices()); + return Objects.hash(getClass().hashCode(), slice, terminator注.slices()); + } + @Override + final public boolean equals(Object obj) { + if (obj == null) { + return false; + } + return hashCode() == obj.hashCode(); +// if (this == obj) { +// return true; +// } +// if (obj == null) { +// return false; +// } +// if (getClass() != obj.getClass()) { +// return false; +// } +// BoneTerminatorBaseX other = (BoneTerminatorBaseX) obj; +// return slice == other.slice && terminator注.slices() == other.terminator注.slices(); + } + } private interface PrimordialZerdinalMutexBaseX { } From f7558b92dd9f6d3cf3a513e9cd333a6128969930 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 23 Oct 2025 20:43:39 +0200 Subject: [PATCH 5/9] NX01: Improved javadoc output warnings --- .../main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumber.java | 1 + .../java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberBlob.java | 1 + .../java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberByte.java | 1 + .../main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/Decimal144.java | 14 ++++++++------ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorCakeᴮᵃᵏᵉ.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGun.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo注.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunLoader.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunSafe.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator注.java | 3 +++ .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java | 3 +++ .../java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/RopeStrandSignedInt.java | 1 + .../src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/Ropeᴿᵈ.java | 2 +- .../ᙆᓫᣗᒄᑊᣕᣔᒻ/PrimordialZerdinalSpaceMaterializer.java | 1 + .../nx01/mushroom/mais/mm/MetaModelMaisWing.java | 1 + .../nostr/model/event/NoStrEventTagBase.java | 1 + .../nx01/no2all/nostr/octo/OctoBitConverter.java | 3 ++- .../nostr/octo/tlv/AbstractTLVChainAtom.java | 3 +++ .../nx01/no2all/nostr/octo/tlv/TLVChainAtom.java | 4 ++++ .../no2all/nostr/octo/tlv/TLVChainAtomFrame.java | 1 + .../nostr/octo/tlv/TLVChainAtomFrameType.java | 1 + .../nostr/octo/tlv/TLVChainAtomSerializable.java | 3 +++ .../react/nostr/client/NoStrRelayFetchInfo.java | 1 + .../react/nostr/client/NoStrRelayReadType.java | 1 + .../no2all/react/nostr/client/NoStrRtsClient.java | 1 + .../no2all/react/nostr/server/NoStrRtsServer.java | 1 + .../relay/NoStrArtServerRelayStoreEvent.java | 1 + .../nostr/server/relay/NoStrRtsServerRelay.java | 1 + .../server/relay/NoStrRtsServerRelaySubs.java | 1 + .../nx01/redsea/jdatstart/JDatStartDriver.java | 1 + .../model/AbstractJDatStartItemFilter.java | 1 + .../nx01/redsea/jdatstart/model/JDatStart.java | 1 + .../nx01/redsea/jdatstart/model/JDatStartInfo.java | 1 + .../jdatstart/model/JDatStartInfoAssociation.java | 1 + .../model/JDatStartInfoRelatedContent.java | 1 + .../jdatstart/model/JDatStartMetaDescription.java | 1 + .../model/JDatStartMetaDescriptionKind.java | 1 + .../redsea/jdatstart/model/JDatStartMetaIcon.java | 1 + .../jdatstart/model/JDatStartMetaIconKind.java | 1 + .../redsea/jdatstart/model/JDatStartMetaTitle.java | 1 + .../nx01/redsea/jdatstart/model/JDatStartRun.java | 1 + .../redsea/jdatstart/model/JDatStartRunApplet.java | 1 + .../model/JDatStartRunAppletParameter.java | 1 + .../jdatstart/model/JDatStartRunApplication.java | 1 + .../jdatstart/model/JDatStartRunComponent.java | 1 + .../jdatstart/model/JDatStartRunInstaller.java | 1 + .../redsea/jdatstart/model/JDatStartSecurity.java | 1 + .../redsea/jdatstart/model/JDatStartUpdate.java | 1 + .../jdatstart/model/JDatStartUpdateCheck.java | 1 + .../jdatstart/model/JDatStartUpdatePolicy.java | 1 + .../model/resource/JDatStartResourceDownload.java | 1 + .../JDatStartResourceDownloadExtension.java | 1 + .../model/resource/JDatStartResourcePart.java | 1 + .../resource/JDatStartResourcePartArtifact.java | 1 + .../resource/JDatStartResourcePartExtension.java | 1 + .../model/resource/JDatStartResourcePartJ2SE.java | 1 + .../model/resource/JDatStartResourcePartJar.java | 1 + .../model/resource/JDatStartResourcePartJava.java | 1 + .../resource/JDatStartResourcePartNativeLib.java | 1 + .../resource/JDatStartResourcePartPackage.java | 1 + .../resource/JDatStartResourcePartProperty.java | 1 + .../model/resource/JDatStartResources.java | 1 + .../nx01/warp/core/react/WarpReactPlasmaCoil.java | 1 + .../nx01/warp/core/react/WarpReactPlasmaPulse.java | 1 + 67 files changed, 102 insertions(+), 8 deletions(-) diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumber.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumber.java index 4e87b2b..6c804cc 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumber.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumber.java @@ -30,6 +30,7 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ; import ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ.ᣖᣗᑊᔿᑊᐪᑊᘁᓫ.PrimitiveBooleanIterator; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// The lowest number base interface. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberBlob.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberBlob.java index 64338d7..06b8a8a 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberBlob.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberBlob.java @@ -37,6 +37,7 @@ import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒢℭỗᶇṧⱦᶏꬼȶʂ; import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᔿᣔᐪᣗᑊᕁ.M02ᒾ; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Basic number blob as digital blubber. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberByte.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberByte.java index 24148d7..dd48ee9 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberByte.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/BaseNumberByte.java @@ -30,6 +30,7 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ; import ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ.ᣖᣗᑊᔿᑊᐪᑊᘁᓫ.PrimitiveByteIterator; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Basic numbers which are retro classic oldschool legacy byte aligned. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/Decimal144.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/Decimal144.java index 85fb455..b131a48 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/Decimal144.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/Decimal144.java @@ -37,13 +37,20 @@ import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.ᔿᓫᒻ import ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ.ᣖᣗᑊᔿᑊᐪᑊᘁᓫ.PrimitiveBooleanIterator; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Decimal choco number of 144 bits. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 -//see working impl at: https://github.com/douglascrockford/DEC64 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public class Decimal144 extends AbstractBaseGetậlMatrix1 implements BaseNumber { + // Decimal144 + // OLD: 18 (signed) exponent + 126 coefficient = 6 octals + 42 octals + // V2X: 4 bit choco + 14 bit exponent + 126 coefficient + + // TODO: add parse's for all 3 retro decimal formats + // DEC64 = 8 bit exponent + 56 bit coefficient + //see working impl at: https://github.com/douglascrockford/DEC64 // decimal64 floating-point format // 1 sign + 13 combination + 50 Significand continuation @@ -51,11 +58,6 @@ public class Decimal144 extends AbstractBaseGetậlMatrix1 // decimal128 floating-point format // 1 sign + 17 combination + 110 Significand continuation - // Decimal144 - // 18 (signed) exponent + 126 coefficient = 6 octals + 42 octals - - // TODO: add parse's for all 3 retro decimal formats - private final V144Tocta value; public Decimal144() { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java index f1f86e7..6da1089 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java @@ -30,6 +30,9 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.ᣔᔿᔿᐤ.BãßBȍőnAmmoBullet; +/// Terminator bullet types to store in the backpack. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public enum TerminatorBullet implements BãßBȍőnAmmoBullet { DUYTS_NAME, diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorCakeᴮᵃᵏᵉ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorCakeᴮᵃᵏᵉ.java index 3d31c0f..efdb779 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorCakeᴮᵃᵏᵉ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorCakeᴮᵃᵏᵉ.java @@ -34,6 +34,9 @@ import ᒢᐩᐩ.ᓫᣕᐪᓫᣗ.ᣖᑊᓫ.ᐪᣔᔆᐪᓫ.TasteCakeDoughFrostGl import ᒢᐩᐩ.ᓫᣕᐪᓫᣗ.ᣖᑊᓫ.ᐪᣔᔆᐪᓫ.TasteCakeDoughMarrowGlitter注; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator cake bake instructions. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @TasteCakeDoughMarrowGlitter注(eat = @FoodGlitter注(prefix = {/*"thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ",*/ "this", "to", "zerdinal", "ordinal", "clamp", "brick", "lego"}), taste = @FoodSelect注(burn = FoodType.ANY_ENUM)) @TasteCakeDoughMarrowGlitter注(eat = @FoodGlitter注(prefix = {"valueOf", "values", "valuesLength", "convertᴬᴸᴸ"/*, "valuesᵁⁿˢᵃᶠᵉ"*/}), tasteStatic = true, taste = @FoodSelect注(burn = FoodType.ANY_ENUM)) diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java index 86e76e8..6647447 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java @@ -30,6 +30,9 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᔿᓑᔿᔿᔋᐝᣚ.BãßᛗᚢᛗᛗᛉChaliceEnum𓄯; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator glue for enum instance variants. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public interface TerminatorEnum𓄯> extends Terminator𓄯,BãßᛗᚢᛗᛗᛉChaliceEnum𓄯 { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGun.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGun.java index be5a0c0..cce7122 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGun.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGun.java @@ -29,6 +29,9 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator gun fire. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public interface TerminatorGun { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo.java index fcc2f5e..d82cd32 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo.java @@ -29,6 +29,9 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator gun ammo meta information web-site descriptor. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public interface TerminatorGunAmmo { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo注.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo注.java index 15662d4..faaba00 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo注.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunAmmo注.java @@ -35,6 +35,9 @@ import java.lang.annotation.Target; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator gun ammo annotation. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunLoader.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunLoader.java index b04ed3f..1c09ea7 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunLoader.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunLoader.java @@ -29,6 +29,9 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator gun loader. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public interface TerminatorGunLoader { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunSafe.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunSafe.java index e4215bf..b7dd11f 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunSafe.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorGunSafe.java @@ -31,6 +31,9 @@ import java.util.Optional; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator gun safe to transfer ammo from loader to instance. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public final class TerminatorGunSafe { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator注.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator注.java index 498cdad..c290566 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator注.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator注.java @@ -36,6 +36,9 @@ import java.lang.annotation.Target; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.BabelẞlueText; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Terminator annotation. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java index 87cc902..c8b6c2d 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java @@ -61,6 +61,9 @@ import ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᙆᓫᣗᒄᑊᣕᣔᒻ.ᣔᒃᣔᒼᓑᔆ. import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.TTꞱꞱᖟGunShield; /// The terminator of the part's implementation interface +/// @param The T-Bone self type. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnKακοFireBall注(required = Terminator注.class) public interface Terminator𓄯> extends ZerdinalAḃåčȕs̈RȧñkLine𓄯, BãßBȍőnAmmoBox𓄯ᶠˡʸ, ServiceLoader𓄯ᶠˡʸ, TerminatorCakeᴮᵃᵏᵉ { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/RopeStrandSignedInt.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/RopeStrandSignedInt.java index 0c17392..8813c2d 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/RopeStrandSignedInt.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/RopeStrandSignedInt.java @@ -31,6 +31,7 @@ import java.util.function.IntSupplier; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; +/// Primative sign integer rope strand type support marker. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/Ropeᴿᵈ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/Ropeᴿᵈ.java index 4ad3ca2..b162f3c 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/Ropeᴿᵈ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ/Ropeᴿᵈ.java @@ -29,7 +29,7 @@ package ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; -/// TODO: locate nether location of base2 and typed-iterator interfaces dial tones. +// TODO: locate nether location of base2 and typed-iterator interfaces dial tones. @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public interface Ropeᴿᵈ*/> /* extends NetherRingTone<...typed-iteraor>*/ { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᣕᓑᔿᒃᓫᣗ/ᙆᓫᣗᒄᑊᣕᣔᒻ/PrimordialZerdinalSpaceMaterializer.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᣕᓑᔿᒃᓫᣗ/ᙆᓫᣗᒄᑊᣕᣔᒻ/PrimordialZerdinalSpaceMaterializer.java index 2f3c84f..7828a9f 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᣕᓑᔿᒃᓫᣗ/ᙆᓫᣗᒄᑊᣕᣔᒻ/PrimordialZerdinalSpaceMaterializer.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᣕᓑᔿᒃᓫᣗ/ᙆᓫᣗᒄᑊᣕᣔᒻ/PrimordialZerdinalSpaceMaterializer.java @@ -41,6 +41,7 @@ import ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ.RopeOfAzraelᴿᵈ; import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; /// Materialize a zerdinal number object from space. +/// @param The self type used by the creator. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") diff --git a/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/MetaModelMaisWing.java b/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/MetaModelMaisWing.java index c5513cd..304b322 100644 --- a/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/MetaModelMaisWing.java +++ b/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/MetaModelMaisWing.java @@ -37,6 +37,7 @@ import org.eobjects.metamodel.doc.DocModelWriter; import org.apache.metamodel.jdbc.JdbcDataContext; //import org.apache.metamodel.xml.XmlDomDataContext; +/// Meta model mais wing SPI loader hook (TODO make working in maisdoc) /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class MetaModelMaisWing { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/model/event/NoStrEventTagBase.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/model/event/NoStrEventTagBase.java index aa3d5d8..4e9fd5b 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/model/event/NoStrEventTagBase.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/model/event/NoStrEventTagBase.java @@ -34,6 +34,7 @@ import love.distributedrebirth.nx01.no2all.nostr.nip.NoStrImplEventTagArgument; import love.distributedrebirth.nx01.no2all.nostr.nip.NoStrImplQName; /// The nostr event tag base. +/// @param The argument type to implement the tag argument with. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class NoStrEventTagBase implements NoStrEventTag { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/OctoBitConverter.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/OctoBitConverter.java index d6e0f05..302c196 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/OctoBitConverter.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/OctoBitConverter.java @@ -27,8 +27,9 @@ package love.distributedrebirth.nx01.no2all.nostr.octo; -/// October bit converter. +/// October byte bits converter. /// +/// @param The type of this converter. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface OctoBitConverter { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/AbstractTLVChainAtom.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/AbstractTLVChainAtom.java index b252abe..ac718b1 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/AbstractTLVChainAtom.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/AbstractTLVChainAtom.java @@ -32,6 +32,9 @@ import java.util.Iterator; import java.util.List; /// Abstract TLV chain atom. +/// @param The frame element type. +/// @param The frame element class type. +/// @param The frame element type class type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 abstract public class AbstractTLVChainAtom, S extends TLVChainAtomFrameType> implements TLVChainAtom { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtom.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtom.java index d26e5f6..02adb84 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtom.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtom.java @@ -32,6 +32,10 @@ import java.util.Iterator; import java.util.List; /// TLV chain atom. +/// +/// @param The frame element type. +/// @param The frame element class type. +/// @param The frame element type class type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface TLVChainAtom, S extends TLVChainAtomFrameType> { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrame.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrame.java index 196b599..84f30e8 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrame.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrame.java @@ -28,6 +28,7 @@ package love.distributedrebirth.nx01.no2all.nostr.octo.tlv; /// TLV chain atom frame. +/// @param The frame segment type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface TLVChainAtomFrame { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrameType.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrameType.java index 0d34feb..79861ad 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrameType.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomFrameType.java @@ -28,6 +28,7 @@ package love.distributedrebirth.nx01.no2all.nostr.octo.tlv; /// TLV chain atom frame type. +/// @param The frame type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface TLVChainAtomFrameType { diff --git a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomSerializable.java b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomSerializable.java index 9979856..e8db2f9 100644 --- a/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomSerializable.java +++ b/nx01-no2all-nostr/src/main/java/love/distributedrebirth/nx01/no2all/nostr/octo/tlv/TLVChainAtomSerializable.java @@ -35,6 +35,9 @@ import java.io.OutputStream; import java.nio.ByteBuffer; /// TLV chain atom serializable. +/// @param The frame element type. +/// @param The frame element class type. +/// @param The frame element type class type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface TLVChainAtomSerializable, S extends TLVChainAtomFrameType> extends TLVChainAtom { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayFetchInfo.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayFetchInfo.java index 1e82dd3..3cfd41f 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayFetchInfo.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayFetchInfo.java @@ -39,6 +39,7 @@ import jakarta.json.Json; import jakarta.json.JsonReader; import love.distributedrebirth.nx01.no2all.nostr.model.NoStrRelayInfo; +/// NoStr relay fetch info support. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class NoStrRelayFetchInfo { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayReadType.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayReadType.java index 5dd4444..81570b9 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayReadType.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRelayReadType.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.nostr.client; +/// NoStr relay read type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum NoStrRelayReadType { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRtsClient.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRtsClient.java index 4753ea2..2eee540 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRtsClient.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/client/NoStrRtsClient.java @@ -52,6 +52,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// NoStr client event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class NoStrRtsClient extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/NoStrRtsServer.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/NoStrRtsServer.java index 066a27e..52e33a2 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/NoStrRtsServer.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/NoStrRtsServer.java @@ -54,6 +54,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// NoStr server event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class NoStrRtsServer extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrArtServerRelayStoreEvent.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrArtServerRelayStoreEvent.java index 843f0ef..0b2c92d 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrArtServerRelayStoreEvent.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrArtServerRelayStoreEvent.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.nostr.server.relay; import love.distributedrebirth.nx01.no2all.nostr.model.event.NoStrEvent; +/// NoStr server relay store event. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class NoStrArtServerRelayStoreEvent { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelay.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelay.java index 8323b91..79daf43 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelay.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelay.java @@ -42,6 +42,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// NoStr server relay event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class NoStrRtsServerRelay extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelaySubs.java b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelaySubs.java index 242fb5f..d68cfe9 100644 --- a/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelaySubs.java +++ b/nx01-no2all-react-nostr/src/main/java/love/distributedrebirth/nx01/no2all/react/nostr/server/relay/NoStrRtsServerRelaySubs.java @@ -37,6 +37,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// NoStr server relay subs event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class NoStrRtsServerRelaySubs extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/JDatStartDriver.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/JDatStartDriver.java index b4709ce..e271533 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/JDatStartDriver.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/JDatStartDriver.java @@ -32,6 +32,7 @@ import org.x4o.xml.X4ODriverManager; import love.distributedrebirth.nx01.redsea.jdatstart.model.JDatStart; +/// JDatStart driver. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class JDatStartDriver extends X4ODriver { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/AbstractJDatStartItemFilter.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/AbstractJDatStartItemFilter.java index be9af4b..37fb1ed 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/AbstractJDatStartItemFilter.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/AbstractJDatStartItemFilter.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// Abstract JDatStart item filter. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 abstract public class AbstractJDatStartItemFilter { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStart.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStart.java index 5f26bdb..f0a82ca 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStart.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStart.java @@ -31,6 +31,7 @@ import java.util.List; import love.distributedrebirth.nx01.redsea.jdatstart.model.resource.JDatStartResources; +/// JDatStart. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfo.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfo.java index 88e9b5a..3677402 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfo.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfo.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; import java.util.List; +/// JDatStart info. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartInfo extends AbstractJDatStartItemFilter { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoAssociation.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoAssociation.java index c4d854c..bec0adc 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoAssociation.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoAssociation.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart info association. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartInfoAssociation { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoRelatedContent.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoRelatedContent.java index 0b8526c..01d2671 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoRelatedContent.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartInfoRelatedContent.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart info related content. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartInfoRelatedContent { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescription.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescription.java index 006aa1b..92f1715 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescription.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescription.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart meta description. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartMetaDescription { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescriptionKind.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescriptionKind.java index a58cb94..73b49dc 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescriptionKind.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaDescriptionKind.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart meta description kind. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum JDatStartMetaDescriptionKind { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIcon.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIcon.java index 901dcdd..25de23b 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIcon.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIcon.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart meta icon. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartMetaIcon { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIconKind.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIconKind.java index d2828e4..d1b2c14 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIconKind.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaIconKind.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart meta icon kind. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum JDatStartMetaIconKind { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaTitle.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaTitle.java index 96eaeb2..8f21651 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaTitle.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartMetaTitle.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart meta title. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartMetaTitle { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRun.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRun.java index f7e88aa..8c55b55 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRun.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRun.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart run marker. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface JDatStartRun { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplet.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplet.java index aa1674c..571b151 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplet.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplet.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; import java.util.List; +/// JDatStart run applet. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartRunApplet implements JDatStartRun { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunAppletParameter.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunAppletParameter.java index ebb3ac8..2d645cd 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunAppletParameter.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunAppletParameter.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart run applet parameter. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartRunAppletParameter implements JDatStartRun { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplication.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplication.java index c32b1d7..468b8b0 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplication.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunApplication.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; import java.util.List; +/// JDatStart run application. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartRunApplication implements JDatStartRun { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunComponent.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunComponent.java index 0fb417c..b528fa4 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunComponent.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunComponent.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart run component. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartRunComponent implements JDatStartRun { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunInstaller.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunInstaller.java index b8ef180..2982821 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunInstaller.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartRunInstaller.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart run installer. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartRunInstaller implements JDatStartRun { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartSecurity.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartSecurity.java index b002ff6..2e31b4b 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartSecurity.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartSecurity.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart security. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartSecurity { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdate.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdate.java index 2a36aa6..43228ca 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdate.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdate.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart update. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartUpdate { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdateCheck.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdateCheck.java index a29d2ee..e2066d1 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdateCheck.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdateCheck.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart update check schedule. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum JDatStartUpdateCheck { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdatePolicy.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdatePolicy.java index 96f175a..4aace2c 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdatePolicy.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/JDatStartUpdatePolicy.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model; +/// JDatStart update policy mode. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum JDatStartUpdatePolicy { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownload.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownload.java index 47c4caa..63014e5 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownload.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownload.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource download fetch type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum JDatStartResourceDownload { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownloadExtension.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownloadExtension.java index 62dc586..480247e 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownloadExtension.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourceDownloadExtension.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource download extension. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourceDownloadExtension { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePart.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePart.java index 5451305..9dc2d7a 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePart.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePart.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource part marker. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartArtifact.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartArtifact.java index 2e1e14c..1d439c6 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartArtifact.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartArtifact.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource part artifact. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartArtifact implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartExtension.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartExtension.java index 3463bde..dbd7f0f 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartExtension.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartExtension.java @@ -30,6 +30,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; import java.util.ArrayList; import java.util.List; +/// JDatStart resource part extension. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartExtension implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJ2SE.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJ2SE.java index b13a93d..3c3c409 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJ2SE.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJ2SE.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; import java.util.List; +/// JDatStart resource part J2SE. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartJ2SE implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJar.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJar.java index ae9895a..805efdf 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJar.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJar.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource part jar. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartJar implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJava.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJava.java index c81c93e..770bc2f 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJava.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartJava.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; import java.util.List; +/// JDatStart resource part java. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartJava implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartNativeLib.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartNativeLib.java index 435f0ab..269cd81 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartNativeLib.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartNativeLib.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource part native lib. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartNativeLib implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartPackage.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartPackage.java index 81badd2..4927b4a 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartPackage.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartPackage.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource part package. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartPackage implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartProperty.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartProperty.java index 92bc602..9ba995b 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartProperty.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResourcePartProperty.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.redsea.jdatstart.model.resource; +/// JDatStart resource part property. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResourcePartProperty implements JDatStartResourcePart { diff --git a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResources.java b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResources.java index ae89c3d..f9c1dae 100644 --- a/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResources.java +++ b/nx01-redsea-jdatstart/src/main/java/love/distributedrebirth/nx01/redsea/jdatstart/model/resource/JDatStartResources.java @@ -31,6 +31,7 @@ import java.util.List; import love.distributedrebirth.nx01.redsea.jdatstart.model.AbstractJDatStartItemFilter; +/// JDatStart resources. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class JDatStartResources extends AbstractJDatStartItemFilter { diff --git a/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaCoil.java b/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaCoil.java index 820ada2..269de43 100644 --- a/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaCoil.java +++ b/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaCoil.java @@ -28,6 +28,7 @@ package love.distributedrebirth.nx01.warp.core.react; /// Warp react plasma coil. +/// @param The type of the pulse event flow value. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @FunctionalInterface diff --git a/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaPulse.java b/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaPulse.java index 1718046..a9d4a1d 100644 --- a/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaPulse.java +++ b/nx01-warp-core/src/main/java/love/distributedrebirth/nx01/warp/core/react/WarpReactPlasmaPulse.java @@ -28,6 +28,7 @@ package love.distributedrebirth.nx01.warp.core.react; /// Warp react plasma pulse. +/// @param Type of the pulse event flow value. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class WarpReactPlasmaPulse { From e685c27131a09e6c7a4dd1bb611227de82070ae4 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 23 Oct 2025 21:12:20 +0200 Subject: [PATCH 6/9] NX01: Some javadoc warning fixes and fillup --- .../java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᒢSkullBoneMother.java | 1 + .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java | 1 + .../ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᔿᣔᐪᣗᑊᕁ/NumberMatrix𓄯.java | 3 ++ .../nx01/mushroom/mais/mm/package-info.java | 33 +++++++++++++++++++ .../metamodel/doc/jdbc/db/package-info.java | 5 +++ .../metamodel/doc/jdbc/package-info.java | 5 +++ .../eobjects/metamodel/doc/package-info.java | 5 +++ .../react/wire/client/No2AllActClient.java | 1 + .../wire/client/No2AllActClientClose.java | 1 + .../wire/client/No2AllActClientConnect.java | 1 + .../client/No2AllActClientSendBinary.java | 1 + .../client/No2AllActClientSendMessage.java | 1 + .../react/wire/client/No2AllArtClient.java | 1 + .../wire/client/No2AllArtClientOnBinary.java | 1 + .../wire/client/No2AllArtClientOnClose.java | 1 + .../wire/client/No2AllArtClientOnError.java | 1 + .../wire/client/No2AllArtClientOnMessage.java | 1 + .../wire/client/No2AllArtClientOnOpen.java | 1 + .../wire/client/No2AllArtClientOnStart.java | 1 + .../react/wire/client/No2AllRtsClient.java | 1 + .../react/wire/server/No2AllActServer.java | 1 + .../No2AllActServerBroadcastBinary.java | 1 + .../No2AllActServerBroadcastMessage.java | 1 + .../server/No2AllActServerSocketClose.java | 1 + .../No2AllActServerSocketSendBinary.java | 1 + .../No2AllActServerSocketSendMessage.java | 3 +- .../react/wire/server/No2AllArtServer.java | 3 +- .../wire/server/No2AllArtServerOnError.java | 1 + .../wire/server/No2AllArtServerOnStart.java | 1 + .../wire/server/No2AllArtServerSocket.java | 1 + .../server/No2AllArtServerSocketOnBinary.java | 1 + .../server/No2AllArtServerSocketOnClose.java | 1 + .../server/No2AllArtServerSocketOnError.java | 1 + .../No2AllArtServerSocketOnMessage.java | 1 + .../react/wire/server/No2AllRtsServer.java | 1 + .../react/wire/server/No2AllRtsServerLog.java | 1 + .../manifestor/manifest/WarpManifestX0.java | 3 ++ .../manifest/WarpManifestX0HeaderField.java | 2 ++ .../manifest/WarpManifestX0Section.java | 3 ++ .../scopic/ScopicManifestContent.java | 1 + .../ScopicManifestDuplicateDetector.java | 1 + .../iomf3/ScopicManifest3ContentWriter.java | 2 +- .../scopic/iomf3/ScopicManifest3FrameTLV.java | 2 ++ .../scopic/iomf4/ScopicManifest4FrameTLV.java | 2 ++ .../scopic/iomf5/ScopicManifest5FrameTag.java | 2 ++ .../AbstractElementBindingHandler.java | 1 + .../org/x4o/xml/io/AbstractX4OReader.java | 1 + .../x4o/xml/io/AbstractX4OReaderSession.java | 1 + .../org/x4o/xml/io/AbstractX4OWriter.java | 1 + .../x4o/xml/io/AbstractX4OWriterSession.java | 3 +- .../java/org/x4o/xml/io/DefaultX4OReader.java | 1 + .../java/org/x4o/xml/io/DefaultX4OWriter.java | 1 + .../main/java/org/x4o/xml/io/X4OReader.java | 1 + .../main/java/org/x4o/xml/io/X4OWriter.java | 1 + .../x4o/maisdoc/model/MaisDocWriteEvent.java | 1 + .../java/org/x4o/sax3/SAX3WriterEnum.java | 2 ++ .../org/x4o/sax3/SAX3WriterEnumHammer.java | 1 + .../nx01/zerofungus/server/ZFunRtsServer.java | 1 + .../server/ZFunRtsServerBooted.java | 1 + .../nx01/zerofungus/server/ZeroFungus.java | 1 + .../server/service/ZFunRtsConfigJetty.java | 1 + .../server/service/ZFunRtsInitJdbc.java | 1 + .../server/web/RedirectServlet.java | 1 + 63 files changed, 121 insertions(+), 4 deletions(-) create mode 100644 nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/package-info.java diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᒢSkullBoneMother.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᒢSkullBoneMother.java index b6e88f6..23e9821 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᒢSkullBoneMother.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᒢSkullBoneMother.java @@ -37,6 +37,7 @@ public interface ᒢSkullBoneMother { /// The DNA of which this instance is made of. /// A bean getter should not return the DNA of which the bean is made of. + /// @return The DNA class of the bone bean. default Class thisᴰᴺᴬ() { return getClass(); } diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java index 6647447..552e4e1 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorEnum𓄯.java @@ -31,6 +31,7 @@ import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᔿᓑᔿᔿᔋᐝᣚ.Bãßᛗᚢᛗ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; /// Terminator glue for enum instance variants. +/// @param The T-bone self type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᔿᣔᐪᣗᑊᕁ/NumberMatrix𓄯.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᔿᣔᐪᣗᑊᕁ/NumberMatrix𓄯.java index 261218b..0b72833 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᔿᣔᐪᣗᑊᕁ/NumberMatrix𓄯.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᔿᣔᐪᣗᑊᕁ/NumberMatrix𓄯.java @@ -41,6 +41,9 @@ import ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᙆᓫᣗᒄᑊᣕᣔᒻ.ᣔᒃᣔᒼᓑᔆ. import ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᙆᓫᣗᒄᑊᣕᣔᒻ.ᣔᒃᣔᒼᓑᔆ.ZerdinalAḃåčȕs̈RȧñkLine𓄯; /// Holds the number block and dimension. +/// @param The T-bone self type. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnKακοFireBall注(required = {NumberMatrix注.class}) public interface NumberMatrix𓄯> extends ZerdinalAḃåčȕs̈RȧñkLine𓄯 { diff --git a/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/package-info.java b/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/package-info.java new file mode 100644 index 0000000..e1f9b59 --- /dev/null +++ b/nx01-mushroom-mais-mm/src/main/java/love/distributedrebirth/nx01/mushroom/mais/mm/package-info.java @@ -0,0 +1,33 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Maisdoc wing SPI integration. + * + * @since 1.0 + */ +package love.distributedrebirth.nx01.mushroom.mais.mm; diff --git a/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java b/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java index 4c46b59..35dddb0 100644 --- a/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java +++ b/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/db/package-info.java @@ -25,4 +25,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/** + * Maisdoc meta model doc JDBC DB. + * + * @since 1.0 + */ package org.eobjects.metamodel.doc.jdbc.db; diff --git a/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java b/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java index 8d5f20c..afe7e8b 100644 --- a/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java +++ b/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/jdbc/package-info.java @@ -25,4 +25,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/** + * Maisdoc meta model doc JDBC. + * + * @since 1.0 + */ package org.eobjects.metamodel.doc.jdbc; diff --git a/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/package-info.java b/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/package-info.java index 7ff2b79..f23b622 100644 --- a/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/package-info.java +++ b/nx01-mushroom-mais-mm/src/main/java/org/eobjects/metamodel/doc/package-info.java @@ -25,4 +25,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/** + * Maisdoc meta model doc. + * + * @since 1.0 + */ package org.eobjects.metamodel.doc; diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClient.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClient.java index e553200..e1464c6 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClient.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClient.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; import love.distributedrebirth.nx01.no2all.wire.WireClientEndpoint; +/// No2All client record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActClient { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientClose.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientClose.java index 5f6879f..3b7c5d9 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientClose.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientClose.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client close record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActClientClose { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientConnect.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientConnect.java index e689463..7ac77c4 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientConnect.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientConnect.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client connect record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActClientConnect { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendBinary.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendBinary.java index f157957..4ecdb66 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendBinary.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendBinary.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; import java.nio.ByteBuffer; +/// No2All client send binary record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActClientSendBinary { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendMessage.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendMessage.java index ca36f8a..0c289b8 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendMessage.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllActClientSendMessage.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client send message record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActClientSendMessage { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClient.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClient.java index 9438f24..24d8bbe 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClient.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClient.java @@ -30,6 +30,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasma; import love.distributedrebirth.nx01.warp.core.space.AbstractSpacePlasma; +/// No2All client record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClient extends AbstractSpacePlasma { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnBinary.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnBinary.java index 4ee9bcb..0c5824c 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnBinary.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnBinary.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; import java.nio.ByteBuffer; +/// No2All client on binary record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClientOnBinary { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnClose.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnClose.java index 2a822d3..8f39729 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnClose.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnClose.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client on close record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClientOnClose { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnError.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnError.java index 9004036..c1892ad 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnError.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnError.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client on error record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClientOnError { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnMessage.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnMessage.java index c25b06c..c8de77b 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnMessage.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnMessage.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client on message record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClientOnMessage { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnOpen.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnOpen.java index 5d7f83f..8694333 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnOpen.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnOpen.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; +/// No2All client on open record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClientOnOpen { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnStart.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnStart.java index 8782be3..fb30173 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnStart.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllArtClientOnStart.java @@ -30,6 +30,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.client; import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasma; import love.distributedrebirth.nx01.warp.core.space.AbstractSpacePlasma; +/// No2All client on start record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtClientOnStart extends AbstractSpacePlasma { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllRtsClient.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllRtsClient.java index 555c720..51baeed 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllRtsClient.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/client/No2AllRtsClient.java @@ -38,6 +38,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// No2All client event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class No2AllRtsClient extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServer.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServer.java index 41e9d0f..0a9b118 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServer.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServer.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; import love.distributedrebirth.nx01.no2all.wire.WireServerEndpoint; +/// No2All server record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActServer { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastBinary.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastBinary.java index badee29..9d6de7d 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastBinary.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastBinary.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; import java.nio.ByteBuffer; +/// No2All server server broadcast binary record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActServerBroadcastBinary { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastMessage.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastMessage.java index 70aee89..52fd9d2 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastMessage.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerBroadcastMessage.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server server broadcast message record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActServerBroadcastMessage { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketClose.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketClose.java index 2b93440..7a014eb 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketClose.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketClose.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server server socket close record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActServerSocketClose { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendBinary.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendBinary.java index 1e515e5..7dcc180 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendBinary.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendBinary.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; import java.nio.ByteBuffer; +/// No2All server server socket send binary record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActServerSocketSendBinary { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendMessage.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendMessage.java index 61d293e..403012d 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendMessage.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllActServerSocketSendMessage.java @@ -27,7 +27,8 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; -/// @author للَّٰهِilLצسُو +/// No2All server server socket send message record. +/// @author للَّٰهِilLsצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllActServerSocketSendMessage { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServer.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServer.java index 1f87555..9aaf05f 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServer.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServer.java @@ -30,8 +30,9 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasma; import love.distributedrebirth.nx01.warp.core.space.AbstractSpacePlasma; +/// No2All server server record. /// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 +/// @version ©Δ∞ 仙上主天s public final class No2AllArtServer extends AbstractSpacePlasma { protected No2AllArtServer(WarpReactPlasma slot) { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnError.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnError.java index 5e9042a..fe80b59 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnError.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnError.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server server on error record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerOnError { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnStart.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnStart.java index 2c673d6..29dade2 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnStart.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerOnStart.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server server on start record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerOnStart { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocket.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocket.java index 3bedc23..e15ec2d 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocket.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocket.java @@ -30,6 +30,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasma; import love.distributedrebirth.nx01.warp.core.space.AbstractSpacePlasma; +/// No2All server server socket record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerSocket extends AbstractSpacePlasma { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnBinary.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnBinary.java index edf59e8..17a4f72 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnBinary.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnBinary.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; import java.nio.ByteBuffer; +/// No2All server server socket on binary record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerSocketOnBinary { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnClose.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnClose.java index 8fc2c72..1c32ea2 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnClose.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnClose.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server server socket on close record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerSocketOnClose { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnError.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnError.java index ab411a9..9efe863 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnError.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnError.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server server socket on error record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerSocketOnError { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnMessage.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnMessage.java index b05296a..f4b6096 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnMessage.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllArtServerSocketOnMessage.java @@ -27,6 +27,7 @@ package love.distributedrebirth.nx01.no2all.react.wire.server; +/// No2All server socket on message record. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class No2AllArtServerSocketOnMessage { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServer.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServer.java index 8ccb3bb..d812be7 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServer.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServer.java @@ -39,6 +39,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// No2All server event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class No2AllRtsServer extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServerLog.java b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServerLog.java index 79f62b6..48e3e71 100644 --- a/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServerLog.java +++ b/nx01-no2all-react-wire/src/main/java/love/distributedrebirth/nx01/no2all/react/wire/server/No2AllRtsServerLog.java @@ -35,6 +35,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// No2All server log event flow. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class No2AllRtsServerLog extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0.java index c5165c1..116018e 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0.java @@ -32,6 +32,9 @@ import java.util.Optional; /// Warp manifest 0 bit model. /// +/// @param The X0 value type. +/// @param The X0 header field type. +/// @param The X0 section type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface WarpManifestX0, H extends WarpManifestX0HeaderField, S extends WarpManifestX0Section> { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0HeaderField.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0HeaderField.java index c0880fc..9cff5da 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0HeaderField.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0HeaderField.java @@ -31,6 +31,8 @@ import java.util.List; /// Warp manifest 0 bit name value pair entry. /// +/// @param The X0 value type. +/// @param The X0 header field type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface WarpManifestX0HeaderField> { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0Section.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0Section.java index 0fdc6c6..bfd943c 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0Section.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/manifest/WarpManifestX0Section.java @@ -32,6 +32,9 @@ import java.util.Optional; /// Warp manifest 0 bit section. /// +/// @param The X0 value type. +/// @param The X0 header field type. +/// @param The X0 section type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface WarpManifestX0Section, S extends WarpManifestX0Section> { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestContent.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestContent.java index 8c7428c..8d68aa9 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestContent.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestContent.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.warp.manifestor.scopic; /// Stroboscopic manifestor content handler. /// +/// @param The manifest body value type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public interface ScopicManifestContent { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestDuplicateDetector.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestDuplicateDetector.java index 6d9cffe..32d8625 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestDuplicateDetector.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/ScopicManifestDuplicateDetector.java @@ -34,6 +34,7 @@ import java.util.function.Function; /// Stroboscopic manifest duplicate detector kills duplicates. /// +/// @param The manifest body value type. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class ScopicManifestDuplicateDetector { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3ContentWriter.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3ContentWriter.java index 700895c..65f6fb8 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3ContentWriter.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3ContentWriter.java @@ -35,7 +35,7 @@ import love.distributedrebirth.nx01.warp.manifestor.scopic.ScopicManifestDuplica import love.distributedrebirth.nx01.warp.manifestor.scopic.ScopicManifestException; import love.distributedrebirth.nx01.warp.manifestor.scopic.iomf.ScopicManifestConstants; -/// Stroboscopic manifest 5 binary 8 bit XDBX content writer. +/// Stroboscopic manifest 3 binary TLV chain. /// /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3FrameTLV.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3FrameTLV.java index b324dd6..a9cb410 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3FrameTLV.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf3/ScopicManifest3FrameTLV.java @@ -29,6 +29,8 @@ package love.distributedrebirth.nx01.warp.manifestor.scopic.iomf3; import love.distributedrebirth.nx01.no2all.nostr.octo.tlv.TLVChainSexTeenBitFrameType; +/// Stroboscopic manifest 3 frame TLV values. +/// /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum ScopicManifest3FrameTLV implements TLVChainSexTeenBitFrameType { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf4/ScopicManifest4FrameTLV.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf4/ScopicManifest4FrameTLV.java index d4435b4..c9f0ac4 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf4/ScopicManifest4FrameTLV.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf4/ScopicManifest4FrameTLV.java @@ -34,6 +34,8 @@ import love.distributedrebirth.nx01.no2all.nostr.octo.tlv.TLVChainOctalSexFrameT import love.distributedrebirth.nx01.no2all.nostr.octo.tlv.TLVChainSexTeenBitFrameType; import love.distributedrebirth.nx01.warp.manifestor.scopic.iomf3.ScopicManifest3FrameTLV; +/// Stroboscopic manifest 4 frame TLV values. +/// /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum ScopicManifest4FrameTLV implements TLVChainOctalSexFrameType { diff --git a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf5/ScopicManifest5FrameTag.java b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf5/ScopicManifest5FrameTag.java index 982e721..e7b10d9 100644 --- a/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf5/ScopicManifest5FrameTag.java +++ b/nx01-warp-manifestor/src/main/java/love/distributedrebirth/nx01/warp/manifestor/scopic/iomf5/ScopicManifest5FrameTag.java @@ -27,6 +27,8 @@ package love.distributedrebirth.nx01.warp.manifestor.scopic.iomf5; +/// Stroboscopic manifest 5 frame tag values. +/// /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum ScopicManifest5FrameTag { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElementBindingHandler.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElementBindingHandler.java index 54dfb48..4ae6b7b 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElementBindingHandler.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElementBindingHandler.java @@ -29,6 +29,7 @@ package org.x4o.xml.element; * * @author Willem Cazander * @version 1.0 Apr 16, 2006 + * @param The parent element value object type. */ public abstract class AbstractElementBindingHandler extends AbstractElementMetaBase implements ElementBindingHandler { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java index 7ab0527..7836e06 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java @@ -36,6 +36,7 @@ import org.xml.sax.SAXException; * * @author Willem Cazander * @version 1.0 Aug 11, 2005 + * @param The root element object type. */ @SuppressWarnings("unchecked") abstract public class AbstractX4OReader extends AbstractX4OReaderSession implements X4OReader { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java index 649481f..ae16010 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java @@ -40,6 +40,7 @@ import org.xml.sax.SAXException; * * @author Willem Cazander * @version 1.0 Apr 6, 2013 + * @param The root element object type. */ abstract public class AbstractX4OReaderSession extends AbstractX4OConnection implements X4OReaderSession { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java index 5e0d492..34fda3d 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java @@ -37,6 +37,7 @@ import org.xml.sax.SAXException; * * @author Willem Cazander * @version 1.0 Apr 6, 2013 + * @param The root element object type. */ public abstract class AbstractX4OWriter extends AbstractX4OWriterSession implements X4OWriter { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java index 8a37cba..9953ed6 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java @@ -37,7 +37,8 @@ import org.xml.sax.SAXException; * AbstractX4OWriterSession. * * @author Willem Cazander - * @version 1.0 Apr 6, 2013 + * @version 1.0 Apr 6, 2013\ + * @param The root element object type. */ public abstract class AbstractX4OWriterSession extends AbstractX4OConnection implements X4OWriterSession { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java index 9a9c708..622430f 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java @@ -50,6 +50,7 @@ import org.xml.sax.SAXException; * * @author Willem Cazander * @version 1.0 Aug 9, 2012 + * @param The root element object type. */ public class DefaultX4OReader extends AbstractX4OReader { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java index f757376..f31849e 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java @@ -59,6 +59,7 @@ import org.xml.sax.helpers.AttributesImpl; * * @author Willem Cazander * @version 1.0 Apr 6, 2013 + * @param The root element object type. */ public class DefaultX4OWriter extends AbstractX4OWriter { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReader.java index db9820f..e376773 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReader.java @@ -35,6 +35,7 @@ import org.xml.sax.SAXException; * * @author Willem Cazander * @version 1.0 Apr 6, 2013 + * @param The root element object type. */ public interface X4OReader extends X4OConnection { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriter.java index 44d37df..c6915ee 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriter.java @@ -33,6 +33,7 @@ import org.xml.sax.SAXException; * * @author Willem Cazander * @version 1.0 Apr 6, 2013 + * @param The root element object type. */ public interface X4OWriter extends X4OConnection { diff --git a/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocWriteEvent.java b/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocWriteEvent.java index 4050492..29e26fe 100644 --- a/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocWriteEvent.java +++ b/nx01-x4o-maisdoc/src/main/java/org/x4o/maisdoc/model/MaisDocWriteEvent.java @@ -29,6 +29,7 @@ import org.x4o.maisdoc.flake.MaisDocContentWriter; * * @author Willem Cazander * @version 1.0 May 12, 2013 + * @param The event object for the write. */ public class MaisDocWriteEvent { diff --git a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnum.java b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnum.java index 68fa56a..458b312 100644 --- a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnum.java +++ b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnum.java @@ -38,6 +38,8 @@ import org.xml.sax.helpers.AttributesImpl; * * @author Willem Cazander * @version 1.0 May 3, 2013 + * @param The enum for the XML tag values. + * @param The tag writer to output to. */ public class SAX3WriterEnum,TAG_WRITER extends ContentWriter> implements SAX3WriterEnumHammer, Closeable { diff --git a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnumHammer.java b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnumHammer.java index aaa1864..602ae6c 100644 --- a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnumHammer.java +++ b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/SAX3WriterEnumHammer.java @@ -31,6 +31,7 @@ import org.xml.sax.Attributes; * * @author Willem Cazander * @version 1.0 May 3, 2013 + * @param The enum for the XML tag values. */ public interface SAX3WriterEnumHammer> { diff --git a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServer.java b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServer.java index 6a1b67e..0c72ea5 100644 --- a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServer.java +++ b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServer.java @@ -45,6 +45,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScriptPlasmaAdapter; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// ZFun server relay to backend store plasma handler. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class ZFunRtsServer extends WarpReactTypeScriptPlasmaAdapter { diff --git a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServerBooted.java b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServerBooted.java index a40038b..ce44d49 100644 --- a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServerBooted.java +++ b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZFunRtsServerBooted.java @@ -33,6 +33,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScript; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// ZFun server booted log message. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class ZFunRtsServerBooted implements WarpReactTypeScript { diff --git a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZeroFungus.java b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZeroFungus.java index 82f0088..2eac07f 100644 --- a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZeroFungus.java +++ b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/ZeroFungus.java @@ -51,6 +51,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasma; import love.distributedrebirth.nx01.zerofungus.server.service.ZFunRtsConfigJetty; import love.distributedrebirth.nx01.zerofungus.server.service.ZFunRtsInitJdbc; +/// Zero fungus main start entry to bootstrap a demo server. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public enum ZeroFungus /* implements BãßBȍőnAbacusInstanceMBeanʸᴰ */ { diff --git a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsConfigJetty.java b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsConfigJetty.java index 21f3f9d..c0a2da2 100644 --- a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsConfigJetty.java +++ b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsConfigJetty.java @@ -62,6 +62,7 @@ import love.distributedrebirth.nx01.zerofungus.server.web.RedirectServlet; import love.distributedrebirth.nx01.zerofungus.server.web.WarpCorePlasmaInspectorServlet; import love.distributedrebirth.nx01.zerofungus.server.web.ZilLaLaFaultFilter; +/// ZFun jetty config handler. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public final class ZFunRtsConfigJetty implements WarpReactTypeScript { diff --git a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsInitJdbc.java b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsInitJdbc.java index 71058ba..fcb645e 100644 --- a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsInitJdbc.java +++ b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/service/ZFunRtsInitJdbc.java @@ -44,6 +44,7 @@ import love.distributedrebirth.nx01.warp.core.react.WarpReactPlasmaPulse; import love.distributedrebirth.nx01.warp.core.react.WarpReactTypeScript; import love.distributedrebirth.nx01.warp.core.space.WarpSpaceAntimatterInducer; +/// ZFun jdbc backend connection handler. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class ZFunRtsInitJdbc implements WarpReactTypeScript { diff --git a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/web/RedirectServlet.java b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/web/RedirectServlet.java index f5613e1..4e355e0 100644 --- a/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/web/RedirectServlet.java +++ b/nx01-zerofungus-server/src/main/java/love/distributedrebirth/nx01/zerofungus/server/web/RedirectServlet.java @@ -33,6 +33,7 @@ import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +/// ZFun redirect server to no where. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 public class RedirectServlet extends HttpServlet { From ec8711df9c86b5d9c54d15ba110978bac181092e Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 6 Nov 2025 18:42:35 +0100 Subject: [PATCH 7/9] X4O: Made session equal used in read and write and added closable --- .../java/org/x4o/xml/eld/EldModuleLoader.java | 6 +- .../org/x4o/xml/io/AbstractX4OConnection.java | 31 +++++-- .../org/x4o/xml/io/AbstractX4OReader.java | 41 ++++++--- .../x4o/xml/io/AbstractX4OReaderSession.java | 90 +++++-------------- .../org/x4o/xml/io/AbstractX4OWriter.java | 20 +++-- .../x4o/xml/io/AbstractX4OWriterSession.java | 13 ++- .../java/org/x4o/xml/io/DefaultX4OReader.java | 38 +++----- .../java/org/x4o/xml/io/DefaultX4OWriter.java | 4 - .../java/org/x4o/xml/io/X4OConnection.java | 21 +++-- .../java/org/x4o/xml/io/X4OReaderSession.java | 31 ++++--- .../java/org/x4o/xml/io/X4OWriterSession.java | 8 +- .../org/x4o/xml/lang/DefaultX4OLanguage.java | 25 +++--- .../xml/lang/DefaultX4OLanguageSession.java | 14 +++ .../org/x4o/xml/lang/X4OLanguageSession.java | 12 ++- .../lang/phase/DefaultX4OPhaseManager.java | 3 +- .../org/x4o/xml/core/NamespaceUriTest.java | 27 ++---- .../org/x4o/xml/core/X4ODebugWriterTest.java | 4 +- .../org/x4o/xml/io/X4OReaderSessionTest.java | 29 +++--- .../x4o/xml/lang/meta/ParentObjectTest.java | 11 +-- .../x4o/xml/lang/meta/ReferenceStoreTest.java | 33 +++---- 20 files changed, 220 insertions(+), 241 deletions(-) diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java index 3e6baab..079ef85 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java @@ -29,6 +29,7 @@ import javax.el.ValueExpression; import org.x4o.xml.X4ODriver; import org.x4o.xml.X4ODriverManager; +import org.x4o.xml.io.DefaultX4OReader; import org.x4o.xml.io.X4OConnectionException; import org.x4o.xml.io.X4OReader; import org.x4o.xml.lang.X4OLanguage; @@ -88,7 +89,6 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { } else { driver = X4ODriverManager.getX4ODriver(EldDriver.LANGUAGE_NAME); } - X4OReader reader = driver.createReader(); //X4OLanguageSession eldLang = driver.createLanguageSession(driver.getLanguageVersionDefault()); @@ -97,6 +97,10 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { reader.addELBeanInstance(EL_PARENT_LANGUAGE, language); reader.addELBeanInstance(EL_PARENT_LANGUAGE_MODULE, languageModule); + //language.createLanguageSession() + + reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_HANDLER, reader); + //TODO: if (language.getLanguageConfiguration().getLanguagePropertyBoolean(X4OLanguageProperty.DEBUG_OUTPUT_ELD_PARSER)) { // eldLang.setX4ODebugWriter(elementLanguage.getLanguageConfiguration().getX4ODebugWriter()); // } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnection.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnection.java index 84720b1..e531d46 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnection.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnection.java @@ -28,6 +28,7 @@ import java.util.List; import org.x4o.sax3.io.SAX3PropertyConfig; import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageSession; /** * AbstractX4OConnection is the read/write interface for the classes. @@ -42,14 +43,23 @@ public abstract class AbstractX4OConnection extends AbstractX4OConnectionDebug { protected List phaseSkip = null; public AbstractX4OConnection(X4OLanguage language) { - this.language=language; + if (language == null) { + throw new NullPointerException("Can't create X4O connection for null language."); + } + this.language = language; this.phaseSkip = new ArrayList(2); } - protected X4OLanguage getLanguage() { + @Override + public final X4OLanguage getLanguage() { return language; } + @Override + public final X4OLanguageSession createLanguageSession() { + return language.createLanguageSession(); + } + abstract SAX3PropertyConfig getPropertyConfig(); /** @@ -57,23 +67,28 @@ public abstract class AbstractX4OConnection extends AbstractX4OConnectionDebug { * @param key The key of the property to set. * @param value The vlue of the property to set. */ - public void setProperty(String key,Object value) { + @Override + public final void setProperty(String key,Object value) { getPropertyConfig().setProperty(key, value); } - public Object getProperty(String key) { + @Override + public final Object getProperty(String key) { return getPropertyConfig().getProperty(key); } - public Collection getPropertyKeys() { + @Override + public final Collection getPropertyKeys() { return getPropertyConfig().getPropertyKeys(); } - public void setPhaseStop(String phaseId) { + @Override + public final void setPhaseStop(String phaseId) { phaseStop = phaseId; } - public void addPhaseSkip(String phaseId) { - phaseSkip.add( phaseId ); + @Override + public final void addPhaseSkip(String phaseId) { + phaseSkip.add(phaseId); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java index 7836e06..deccbe8 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java @@ -29,6 +29,7 @@ import java.io.InputStream; import java.net.URL; import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageSession; import org.xml.sax.SAXException; /** @@ -45,8 +46,11 @@ abstract public class AbstractX4OReader extends AbstractX4OReaderSession i super(language); } - public T read(InputStream input, String systemId, URL basePath) throws X4OConnectionException,SAXException,IOException { - return (T)readSession(input, systemId, basePath).getRootElement().getElementObject(); + public T read(InputStream input, String systemId, URL basePath) throws X4OConnectionException, SAXException, IOException { + try (X4OLanguageSession session = createLanguageSession()) { + readSession(session, input, systemId, basePath); + return (T)session.getRootElement().getElementObject(); + } } /** @@ -58,8 +62,11 @@ abstract public class AbstractX4OReader extends AbstractX4OReaderSession i * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ - public T readFile(String fileName) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - return (T)readFileSession(fileName).getRootElement().getElementObject(); + public T readFile(String fileName) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { + try (X4OLanguageSession session = createLanguageSession()) { + readFileSession(session, fileName); + return (T)session.getRootElement().getElementObject(); + } } /** @@ -71,8 +78,11 @@ abstract public class AbstractX4OReader extends AbstractX4OReaderSession i * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ - public T readFile(File file) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - return (T)readFileSession(file).getRootElement().getElementObject(); + public T readFile(File file) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { + try (X4OLanguageSession session = createLanguageSession()) { + readFileSession(session, file); + return (T)session.getRootElement().getElementObject(); + } } /** @@ -83,8 +93,11 @@ abstract public class AbstractX4OReader extends AbstractX4OReaderSession i * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ - public T readResource(String resourceName) throws X4OConnectionException,SAXException,IOException { - return (T)readResourceSession(resourceName).getRootElement().getElementObject(); + public T readResource(String resourceName) throws X4OConnectionException, SAXException, IOException { + try (X4OLanguageSession session = createLanguageSession()) { + readResourceSession(session, resourceName); + return (T)session.getRootElement().getElementObject(); + } } /** @@ -95,8 +108,11 @@ abstract public class AbstractX4OReader extends AbstractX4OReaderSession i * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ - public T readString(String xmlString) throws X4OConnectionException,SAXException,IOException { - return (T)readStringSession(xmlString).getRootElement().getElementObject(); + public T readString(String xmlString) throws X4OConnectionException, SAXException, IOException { + try (X4OLanguageSession session = createLanguageSession()) { + readStringSession(session, xmlString); + return (T)session.getRootElement().getElementObject(); + } } /** @@ -108,6 +124,9 @@ abstract public class AbstractX4OReader extends AbstractX4OReaderSession i * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ public T readUrl(URL url) throws X4OConnectionException,SAXException,IOException { - return (T)readUrlSession(url).getRootElement().getElementObject(); + try (X4OLanguageSession session = createLanguageSession()) { + readUrlSession(session, url); + return (T)session.getRootElement().getElementObject(); + } } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java index ae16010..ae8ec10 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java @@ -48,64 +48,35 @@ abstract public class AbstractX4OReaderSession extends AbstractX4OConnection super(language); } - /** - * Reads the file fileName and reads it as an InputStream. - * @param fileName The file name to read. - * @throws FileNotFoundException Is thrown is file is not found. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) - */ - public X4OLanguageSession readFileSession(String fileName) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - if (fileName==null) { + public void readFileSession(X4OLanguageSession session, String fileName) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { + if (fileName == null) { throw new NullPointerException("Can't convert null fileName to file object."); - } - return readFileSession(new File(fileName)); + } + readFileSession(session, new File(fileName)); } - /** - * Reads the file and reads it as an InputStream. - * @param file The file to read. - * @throws FileNotFoundException Is thrown is file is not found. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) - */ - public X4OLanguageSession readFileSession(File file) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - if (file==null) { + public void readFileSession(X4OLanguageSession session, File file) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { + if (file == null) { throw new NullPointerException("Can't read null file."); } - if (file.exists()==false) { + if (file.exists() == false) { throw new FileNotFoundException("File does not exists; "+file); } - if (file.canRead()==false) { + if (file.canRead() == false) { throw new IOException("File exists but can't read file: "+file); } URL basePath = new File(file.getAbsolutePath()).toURI().toURL(); - InputStream inputStream = new FileInputStream(file); - try { - return readSession(inputStream,file.getAbsolutePath(),basePath); - } finally { - inputStream.close(); + try (InputStream inputStream = new FileInputStream(file)) { + readSession(session, inputStream,file.getAbsolutePath(),basePath); } } - /** - * reads an resource locaction. - * @param resourceName The resource to readr. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) - */ - public X4OLanguageSession readResourceSession(String resourceName) throws X4OConnectionException,SAXException,IOException { - if (resourceName==null) { + public void readResourceSession(X4OLanguageSession session, String resourceName) throws X4OConnectionException, SAXException, IOException { + if (resourceName == null) { throw new NullPointerException("Can't read null resourceName from classpath."); } URL url = X4OLanguageClassLoader.getResource(resourceName); - if (url==null) { + if (url == null) { throw new NullPointerException("Could not find resource on classpath: "+resourceName); } String baseUrl = url.toExternalForm(); @@ -114,44 +85,25 @@ abstract public class AbstractX4OReaderSession extends AbstractX4OConnection baseUrl = baseUrl.substring(0,lastSlash+1); } URL basePath = new URL(baseUrl); - InputStream inputStream = X4OLanguageClassLoader.getResourceAsStream(resourceName); - try { - return readSession(inputStream,url.toExternalForm(),basePath); - } finally { - inputStream.close(); + try (InputStream inputStream = X4OLanguageClassLoader.getResourceAsStream(resourceName)) { + readSession(session, inputStream,url.toExternalForm(),basePath); } } - /** - * Converts a String to a InputStream to is can me read by SAX. - * @param xmlString The xml as (UTF-8) String to read. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) - */ - public X4OLanguageSession readStringSession(String xmlString) throws X4OConnectionException,SAXException,IOException { - if (xmlString==null) { + public void readStringSession(X4OLanguageSession session, String xmlString) throws X4OConnectionException, SAXException, IOException { + if (xmlString == null) { throw new NullPointerException("Can't read null xml string."); } URL basePath = new File(System.getProperty("user.dir")).toURI().toURL(); String encoding = (String)getProperty(DefaultX4OReader.INPUT_ENCODING); - return readSession(new ByteArrayInputStream(xmlString.getBytes(encoding)),"inline-xml",basePath); + readSession(session, new ByteArrayInputStream(xmlString.getBytes(encoding)),"inline-xml",basePath); } - /** - * Fetched the data direct from remote url to a InputStream to is can me readd by SAX. - * @param url The url to read. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) - */ - public X4OLanguageSession readUrlSession(URL url) throws X4OConnectionException,SAXException,IOException { - if (url==null) { + public void readUrlSession(X4OLanguageSession session, URL url) throws X4OConnectionException, SAXException, IOException { + if (url == null) { throw new NullPointerException("Can't read null url."); } URL basePath = new URL(url.toExternalForm().substring(0,url.toExternalForm().length()-url.getFile().length())); - return readSession(url.openStream(),url.toExternalForm(),basePath); + readSession(session, url.openStream(),url.toExternalForm(),basePath); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java index 34fda3d..960a5c3 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java @@ -45,9 +45,7 @@ public abstract class AbstractX4OWriter extends AbstractX4OWriterSession i super(language); } - abstract X4OLanguageSession createLanguageSession(); - - private X4OLanguageSession toObjectContext(T object) throws SAXException { + protected X4OLanguageSession createObjectContext(T object) throws SAXException { X4OLanguageSession context = createLanguageSession(); Element rootElement = null; try { @@ -64,18 +62,26 @@ public abstract class AbstractX4OWriter extends AbstractX4OWriterSession i } public void write(T object,OutputStream output) throws X4OConnectionException,SAXException,IOException { - writeSession(toObjectContext(object), output); + try (X4OLanguageSession session = createObjectContext(object)) { + writeSession(session, output); + } } public void writeFile(T object,String fileName) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - writeFileSession(toObjectContext(object), fileName); + try (X4OLanguageSession session = createObjectContext(object)) { + writeFileSession(session, fileName); + } } public void writeFile(T object,File file) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - writeFileSession(toObjectContext(object), file); + try (X4OLanguageSession session = createObjectContext(object)) { + writeFileSession(session, file); + } } public String writeString(T object) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { - return writeStringSession(toObjectContext(object)); + try (X4OLanguageSession session = createObjectContext(object)) { + return writeStringSession(session); + } } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java index 9953ed6..8fe0ab0 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java @@ -37,7 +37,7 @@ import org.xml.sax.SAXException; * AbstractX4OWriterSession. * * @author Willem Cazander - * @version 1.0 Apr 6, 2013\ + * @version 1.0 Apr 6, 2013 * @param The root element object type. */ public abstract class AbstractX4OWriterSession extends AbstractX4OConnection implements X4OWriterSession { @@ -47,21 +47,18 @@ public abstract class AbstractX4OWriterSession extends AbstractX4OConnection } public void writeFileSession(X4OLanguageSession languageSession,String fileName) throws X4OConnectionException,SAXException,IOException { - if (fileName==null) { + if (fileName == null) { throw new NullPointerException("Can't convert null fileName to file object."); - } + } writeFileSession(languageSession,new File(fileName)); } public void writeFileSession(X4OLanguageSession languageSession,File file) throws X4OConnectionException,SAXException,IOException { - if (file==null) { + if (file == null) { throw new NullPointerException("Can't read null file."); } - OutputStream outputStream = new FileOutputStream(file); - try { + try (OutputStream outputStream = new FileOutputStream(file)) { writeSession(languageSession,outputStream); - } finally { - outputStream.close(); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java index 622430f..1e3c518 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java @@ -27,6 +27,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; +import java.util.HashMap; +import java.util.Map; import javax.el.ValueExpression; import javax.xml.parsers.ParserConfigurationException; @@ -54,12 +56,10 @@ import org.xml.sax.SAXException; */ public class DefaultX4OReader extends AbstractX4OReader { - private X4OLanguageSession languageSession = null; - private final SAX3PropertyConfig propertyConfig; + private final Map elBeans = new HashMap<>(); private final static String PROPERTY_CONTEXT_PREFIX = SAX3PropertyConfig.X4O_PROPERTIES_PREFIX+"reader/x4o/"; - public final static SAX3PropertyConfig DEFAULT_PROPERTY_CONFIG; public final static String SAX_ERROR_HANDLER = PROPERTY_CONTEXT_PREFIX + "sax/error-handler"; public final static String SAX_ENTITY_RESOLVER = PROPERTY_CONTEXT_PREFIX + "sax/entity-resolver"; @@ -101,7 +101,6 @@ public class DefaultX4OReader extends AbstractX4OReader { public DefaultX4OReader(X4OLanguage language) { super(language); - languageSession = language.createLanguageSession(); propertyConfig = new SAX3PropertyConfig(DEFAULT_PROPERTY_CONFIG,PROPERTY_CONTEXT_PREFIX); } @@ -110,15 +109,20 @@ public class DefaultX4OReader extends AbstractX4OReader { return propertyConfig; } - public X4OLanguageSession readSession(InputStream input, String systemId, URL basePath) throws X4OConnectionException, SAXException, IOException { + @Override + public void readSession(X4OLanguageSession languageSession, InputStream input, String systemId, URL basePath) throws X4OConnectionException, SAXException, IOException { setProperty(INPUT_STREAM, input); setProperty(INPUT_SYSTEM_ID, systemId); setProperty(INPUT_BASE_PATH, basePath); - read(); - return languageSession; + for (String name : elBeans.keySet()) { + Object bean = elBeans.get(name); + ValueExpression ve = languageSession.getExpressionLanguageFactory().createValueExpression(languageSession.getExpressionLanguageContext(),"${"+name+"}", bean.getClass()); + ve.setValue(languageSession.getExpressionLanguageContext(), bean); + } + readSession(languageSession); } - public void addELBeanInstance(String name,Object bean) { + public void addELBeanInstance(String name, Object bean) { if (name==null) { throw new NullPointerException("Can't add null name."); } @@ -128,14 +132,13 @@ public class DefaultX4OReader extends AbstractX4OReader { if (bean==null) { throw new NullPointerException("Can't add null bean."); } - ValueExpression ve = languageSession.getExpressionLanguageFactory().createValueExpression(languageSession.getExpressionLanguageContext(),"${"+name+"}", bean.getClass()); - ve.setValue(languageSession.getExpressionLanguageContext(), bean); + elBeans.put(name, bean); } /** * Parses the input stream as a X4O document. */ - protected void read() throws X4OConnectionException,SAXException,IOException { + protected void readSession(X4OLanguageSession languageSession) throws X4OConnectionException,SAXException,IOException { // Extra check if we have a language if (languageSession.getLanguage()==null) { throw new X4OConnectionException("languageSession is broken getLanguage() returns null."); @@ -186,17 +189,4 @@ public class DefaultX4OReader extends AbstractX4OReader { debugStop(languageSession); } } - - public void releaseSession(X4OLanguageSession context) throws X4OPhaseException { - if (context==null) { - return; - } - if (context.getLanguage()==null) { - return; - } - if (context.getLanguage().getPhaseManager()==null) { - return; - } - context.getLanguage().getPhaseManager().doReleasePhaseManual(context); - } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java index f31849e..671f0c1 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java @@ -105,10 +105,6 @@ public class DefaultX4OWriter extends AbstractX4OWriter { return propertyConfig; } - X4OLanguageSession createLanguageSession() { - return getLanguage().createLanguageSession(); - } - /** * @see org.x4o.xml.io.X4OWriterSession#writeSession(org.x4o.xml.lang.X4OLanguageSession, java.io.OutputStream) */ diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OConnection.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OConnection.java index ed5a7c1..7aa1848 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OConnection.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OConnection.java @@ -24,26 +24,33 @@ package org.x4o.xml.io; import java.util.Collection; +import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageSession; + /** - * X4OConnection interface for config the io drivers. + * X4OConnection interface for config the io-drivers. * * @author Willem Cazander * @version 1.0 Apr 6, 2013 */ public interface X4OConnection { + X4OLanguage getLanguage(); + + X4OLanguageSession createLanguageSession(); + /** * Sets an X4O Language property. * @param key The key of the property to set. - * @param value The vlue of the property to set. + * @param value The value of the property to set. */ - void setProperty(String key,Object value); + void setProperty(String key, Object value); - public Object getProperty(String key); + Object getProperty(String key); - public Collection getPropertyKeys(); + Collection getPropertyKeys(); - public void setPhaseStop(String phaseId); + void setPhaseStop(String phaseId); - public void addPhaseSkip(String phaseId); + void addPhaseSkip(String phaseId); } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReaderSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReaderSession.java index 1f7bc6f..0f16045 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReaderSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OReaderSession.java @@ -29,7 +29,6 @@ import java.io.InputStream; import java.net.URL; import org.x4o.xml.lang.X4OLanguageSession; -import org.x4o.xml.lang.phase.X4OPhaseException; import org.xml.sax.SAXException; /** @@ -40,66 +39,70 @@ import org.xml.sax.SAXException; */ public interface X4OReaderSession extends X4OReader { - void releaseSession(X4OLanguageSession context) throws X4OPhaseException; - /** * Method to parse the xml data. + * @param session The language session. * @param input The inputStream to parse. * @throws X4OConnectionException Is thrown after x4o exception. * @throws SAXException Is thrown after sax xml exception. * @throws IOException Is thrown after io exception. */ - X4OLanguageSession readSession(InputStream input,String systemId,URL basePath) throws X4OConnectionException,SAXException,IOException; + void readSession(X4OLanguageSession session, InputStream input, String systemId, URL basePath) throws X4OConnectionException, SAXException, IOException; /** * Reads the file fileName and parses it as an InputStream. + * @param session The language session. * @param fileName The file name to parse. * @throws FileNotFoundException Is thrown is file is not found. * @throws X4OConnectionException Is thrown after x4o exception. * @throws SAXException Is thrown after sax xml exception. * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) + * @see org.x4o.xml.io.X4OReaderSession#readSession(org.x4o.xml.lang.X4OLanguageSession,java.io.InputStream,java.lang.String,java.net.URL) */ - X4OLanguageSession readFileSession(String fileName) throws X4OConnectionException,SAXException,IOException,FileNotFoundException; + void readFileSession(X4OLanguageSession session, String fileName) throws X4OConnectionException, SAXException, IOException, FileNotFoundException; /** * Reads the file and parses it as an InputStream. + * @param session The language session. * @param file The file to parse. * @throws FileNotFoundException Is thrown is file is not found. * @throws X4OConnectionException Is thrown after x4o exception. * @throws SAXException Is thrown after sax xml exception. * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) + * @see org.x4o.xml.io.X4OReaderSession#readSession(org.x4o.xml.lang.X4OLanguageSession,java.io.InputStream,java.lang.String,java.net.URL) */ - X4OLanguageSession readFileSession(File file) throws X4OConnectionException,SAXException,IOException,FileNotFoundException; + void readFileSession(X4OLanguageSession session, File file) throws X4OConnectionException, SAXException, IOException, FileNotFoundException; /** * Parses an resource locaction. + * @param session The language session. * @param resourceName The resource to parser. * @throws X4OConnectionException Is thrown after x4o exception. * @throws SAXException Is thrown after sax xml exception. * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) + * @see org.x4o.xml.io.X4OReaderSession#readSession(org.x4o.xml.lang.X4OLanguageSession,java.io.InputStream,java.lang.String,java.net.URL) */ - X4OLanguageSession readResourceSession(String resourceName) throws X4OConnectionException,SAXException,IOException; + void readResourceSession(X4OLanguageSession session, String resourceName) throws X4OConnectionException, SAXException, IOException; /** * Converts a String to a InputStream to is can be parsed by SAX. + * @param session The language session. * @param xmlString The xml as String to parse. * @throws X4OConnectionException Is thrown after x4o exception. * @throws SAXException Is thrown after sax xml exception. * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) + * @see org.x4o.xml.io.X4OReaderSession#readSession(org.x4o.xml.lang.X4OLanguageSession,java.io.InputStream,java.lang.String,java.net.URL) */ - X4OLanguageSession readStringSession(String xmlString) throws X4OConnectionException,SAXException,IOException; + void readStringSession(X4OLanguageSession session, String xmlString) throws X4OConnectionException, SAXException, IOException; /** * Fetched the data direct from remote url to a InputStream to is can be parsed by SAX. + * @param session The language session. * @param url The url to parse. * @throws X4OConnectionException Is thrown after x4o exception. * @throws SAXException Is thrown after sax xml exception. * @throws IOException Is thrown after io exception. - * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) + * @see org.x4o.xml.io.X4OReaderSession#readSession(org.x4o.xml.lang.X4OLanguageSession,java.io.InputStream,java.lang.String,java.net.URL) */ - X4OLanguageSession readUrlSession(URL url) throws X4OConnectionException,SAXException,IOException; + void readUrlSession(X4OLanguageSession session, URL url) throws X4OConnectionException, SAXException, IOException; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriterSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriterSession.java index 08d5fce..eeafe21 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriterSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OWriterSession.java @@ -37,11 +37,11 @@ import org.xml.sax.SAXException; */ public interface X4OWriterSession extends X4OWriter { - void writeSession(X4OLanguageSession context,OutputStream out) throws X4OConnectionException,SAXException,IOException; + void writeSession(X4OLanguageSession session, OutputStream out) throws X4OConnectionException, SAXException, IOException; - void writeFileSession(X4OLanguageSession context,String fileName) throws X4OConnectionException,SAXException,IOException; + void writeFileSession(X4OLanguageSession session, String fileName) throws X4OConnectionException, SAXException, IOException; - void writeFileSession(X4OLanguageSession context,File file) throws X4OConnectionException,SAXException,IOException; + void writeFileSession(X4OLanguageSession session, File file) throws X4OConnectionException, SAXException, IOException; - String writeStringSession(X4OLanguageSession context) throws X4OConnectionException,SAXException,IOException; + String writeStringSession(X4OLanguageSession session) throws X4OConnectionException, SAXException, IOException; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java index fce7d6f..5e66951 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java @@ -38,7 +38,6 @@ import org.x4o.xml.element.ElementInterface; import org.x4o.xml.element.ElementNamespace; import org.x4o.xml.element.ElementNamespaceInstanceProviderException; import org.x4o.xml.element.ElementObjectPropertyValue; -import org.x4o.xml.lang.phase.X4OPhaseException; import org.x4o.xml.lang.phase.X4OPhaseManager; /** @@ -135,28 +134,24 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { return result; } - protected X4OLanguageSession buildElementLanguage(X4OLanguageSession languageSession) { - if ((languageSession instanceof X4OLanguageSessionLocal)==false) { - throw new RuntimeException("Can't init X4OLanguageSession which has not X4OLanguageSessionLocal interface obj: "+languageSession); - } - X4OLanguageSessionLocal contextInit = (X4OLanguageSessionLocal)languageSession; + protected X4OLanguageSession buildElementLanguage(X4OLanguageSessionLocal languageSession) { try { - if (contextInit.getExpressionLanguageFactory()==null) { - contextInit.setExpressionLanguageFactory(X4OExpressionFactory.createExpressionFactory()); + if (languageSession.getExpressionLanguageFactory()==null) { + languageSession.setExpressionLanguageFactory(X4OExpressionFactory.createExpressionFactory()); } - if (contextInit.getExpressionLanguageContext()==null) { - contextInit.setExpressionLanguageContext(X4OExpressionFactory.createELContext(contextInit.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext())); + if (languageSession.getExpressionLanguageContext()==null) { + languageSession.setExpressionLanguageContext(X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext())); } - if (contextInit.getElementAttributeValueParser()==null) { - contextInit.setElementAttributeValueParser((ElementAttributeValueParser)X4OLanguageClassLoader.newInstance(getLanguageConfiguration().getDefaultElementAttributeValueParser())); + if (languageSession.getElementAttributeValueParser()==null) { + languageSession.setElementAttributeValueParser((ElementAttributeValueParser)X4OLanguageClassLoader.newInstance(getLanguageConfiguration().getDefaultElementAttributeValueParser())); } - if (contextInit.getElementObjectPropertyValue()==null) { - contextInit.setElementObjectPropertyValue((ElementObjectPropertyValue)X4OLanguageClassLoader.newInstance(getLanguageConfiguration().getDefaultElementObjectPropertyValue())); + if (languageSession.getElementObjectPropertyValue()==null) { + languageSession.setElementObjectPropertyValue((ElementObjectPropertyValue)X4OLanguageClassLoader.newInstance(getLanguageConfiguration().getDefaultElementObjectPropertyValue())); } } catch (Exception e) { throw new RuntimeException(e.getMessage(),e); } - return contextInit; + return languageSession; } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java index f8c0654..4310870 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java @@ -22,6 +22,8 @@ */ package org.x4o.xml.lang; +import org.x4o.xml.io.X4OConnectionException; +import org.x4o.xml.lang.phase.X4OPhaseException; /** * An DefaultX4OLanguageSession. @@ -37,4 +39,16 @@ public class DefaultX4OLanguageSession extends AbstractX4OLanguageSession { public DefaultX4OLanguageSession(X4OLanguage language) { super(language); } + + @Override + public void close() throws X4OConnectionException { + if (getLanguage().getPhaseManager() == null) { + return; + } + try { + getLanguage().getPhaseManager().doReleasePhaseManual(this); + } catch (X4OPhaseException e) { + throw new X4OConnectionException(e); + } + } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java index 802f63e..9b2873d 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSession.java @@ -30,6 +30,7 @@ import javax.el.ExpressionFactory; import org.x4o.xml.element.Element; import org.x4o.xml.element.ElementAttributeValueParser; import org.x4o.xml.element.ElementObjectPropertyValue; +import org.x4o.xml.io.X4OConnectionException; import org.x4o.xml.io.X4ODebugWriter; import org.x4o.xml.lang.phase.X4OPhase; @@ -39,7 +40,7 @@ import org.x4o.xml.lang.phase.X4OPhase; * @author Willem Cazander * @version 1.0 Feb 14, 2007 */ -public interface X4OLanguageSession { +public interface X4OLanguageSession extends AutoCloseable { /** * @return Returns the language from which this session in created. @@ -112,10 +113,15 @@ public interface X4OLanguageSession { /** * @return Returns the phase this session will stop processing. */ - public String getPhaseStop(); + String getPhaseStop(); /** * @return Returns a list of phases we skip while processing. */ - public List getPhaseSkip(); + List getPhaseSkip(); + + /** + * Closes this language session + */ + void close() throws X4OConnectionException; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java index 099d4b5..15e2318 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java @@ -225,7 +225,8 @@ PHASE_ORDER = { *startupX4OPhase, releaseRequested = X4OPhaseLanguageWrite.WRITE_RELEASE; } if (releaseRequested==null) { - throw new IllegalStateException("No manual release requested."); + return; // No manual release requested + //throw new IllegalStateException("No manual release requested."); } if (languageSession.getRootElement()==null) { return; // no root element , empty xml document ? diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/NamespaceUriTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/NamespaceUriTest.java index 4b8e9db..0cfef08 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/NamespaceUriTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/NamespaceUriTest.java @@ -41,44 +41,35 @@ public class NamespaceUriTest { @Test public void testSimpleUri() throws Exception { - X4OLanguageSession context = null; TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); - try { - context = reader.readResourceSession("tests/namespace/uri-simple.xml"); - Assertions.assertEquals(true,context.getRootElement().getChilderen().size()==1); - } finally { - reader.releaseSession(context); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "tests/namespace/uri-simple.xml"); + Assertions.assertEquals(true,session.getRootElement().getChilderen().size()==1); } } @Test public void testEmptyUri() throws Exception { - X4OLanguageSession context = null; TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); reader.setProperty(DefaultX4OReader.DOC_EMPTY_NAMESPACE_URI, "http://test.junit.x4o.org/xml/ns/junit-test-lang"); - try { - context = reader.readResourceSession("tests/namespace/uri-empty.xml"); - Assertions.assertEquals(true,context.getRootElement().getChilderen().size()==1); - } finally { - reader.releaseSession(context); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "tests/namespace/uri-empty.xml"); + Assertions.assertEquals(true,session.getRootElement().getChilderen().size()==1); } } @Test public void testSchemaUri() throws Exception { - X4OLanguageSession context = null; TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); - try { - context = reader.readResourceSession("tests/namespace/uri-schema.xml"); - Assertions.assertEquals(true,context.getRootElement().getChilderen().size()==1); - } finally { - reader.releaseSession(context); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "tests/namespace/uri-schema.xml"); + Assertions.assertEquals(true,session.getRootElement().getChilderen().size()==1); } } } diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java index b030b70..b3714c7 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java @@ -86,8 +86,8 @@ public class X4ODebugWriterTest { Assertions.assertFalse(debug.length()==0, "no debug content"); Assertions.assertTrue(debug.length()>20, "debug content to small"); - //System.out.println("=================== Reader Output ======================"); - //System.out.println(debug); + System.out.println("=================== Reader Output ======================"); + System.out.println(debug); debugFile.delete(); } diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java index bcffe16..691d7d3 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/io/X4OReaderSessionTest.java @@ -62,8 +62,7 @@ public class X4OReaderSessionTest { TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); File xmlFile = copyResourceToTempFile(); - X4OLanguageSession context = reader.readFileSession(xmlFile.getAbsolutePath()); - TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject(); + TestObjectRoot root = reader.readFile(xmlFile.getAbsolutePath()); Assertions.assertNotNull(root); Assertions.assertTrue(root.getTestBeans().size()>0); TestBean bean = root.getTestBeans().get(0); @@ -77,7 +76,7 @@ public class X4OReaderSessionTest { Exception e = null; try { String nullFileName = null; - reader.readFileSession(nullFileName); + reader.readFile(nullFileName); } catch (Exception catchE) { e = catchE; } @@ -92,8 +91,7 @@ public class X4OReaderSessionTest { TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); File xmlFile = copyResourceToTempFile(); - X4OLanguageSession context = reader.readFileSession(xmlFile); - TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject(); + TestObjectRoot root = reader.readFile(xmlFile); Assertions.assertNotNull(root); Assertions.assertTrue(root.getTestBeans().size()>0); TestBean bean = root.getTestBeans().get(0); @@ -107,7 +105,7 @@ public class X4OReaderSessionTest { Exception e = null; try { File nullFile = null; - reader.readFileSession(nullFile); + reader.readFile(nullFile); } catch (Exception catchE) { e = catchE; } @@ -125,7 +123,7 @@ public class X4OReaderSessionTest { try { File tempFile = File.createTempFile("test-file", ".xml"); tempFile.delete(); - reader.readFileSession(tempFile); + reader.readFile(tempFile); } catch (Exception catchE) { e = catchE; } @@ -144,7 +142,7 @@ public class X4OReaderSessionTest { X4OReaderSession reader = driver.createReaderSession(); Exception e = null; try { - reader.readFileSession(new File("/etc/shadow")); + reader.readFile(new File("/etc/shadow")); } catch (Exception catchE) { e = catchE; } @@ -158,8 +156,7 @@ public class X4OReaderSessionTest { public void testReadResource() throws Exception { TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); - X4OLanguageSession context = reader.readResourceSession("tests/attributes/test-bean.xml"); - TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject(); + TestObjectRoot root = reader.readResource("tests/attributes/test-bean.xml"); Assertions.assertNotNull(root); } @@ -169,7 +166,7 @@ public class X4OReaderSessionTest { X4OReaderSession reader = driver.createReaderSession(); Exception e = null; try { - reader.readResourceSession(null); + reader.readResource(null); } catch (Exception catchE) { e = catchE; } @@ -183,13 +180,12 @@ public class X4OReaderSessionTest { public void testReadString() throws Exception { TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); - X4OLanguageSession context = reader.readStringSession( + TestObjectRoot root = reader.readString( ""+ ""+ ""+ "" ); - TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject(); Assertions.assertNotNull(root); Assertions.assertTrue(root.getTestBeans().size()>0); TestBean bean = root.getTestBeans().get(0); @@ -203,7 +199,7 @@ public class X4OReaderSessionTest { X4OReaderSession reader = driver.createReaderSession(); Exception e = null; try { - reader.readStringSession(null); + reader.readString(null); } catch (Exception catchE) { e = catchE; } @@ -218,8 +214,7 @@ public class X4OReaderSessionTest { TestDriver driver = TestDriver.getInstance(); X4OReaderSession reader = driver.createReaderSession(); URL xmlUrl = Thread.currentThread().getContextClassLoader().getResource("tests/attributes/test-bean.xml"); - X4OLanguageSession context = reader.readUrlSession(xmlUrl); - TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject(); + TestObjectRoot root = reader.readUrl(xmlUrl); Assertions.assertNotNull(root); Assertions.assertTrue(root.getTestBeans().size()>0); TestBean bean = root.getTestBeans().get(0); @@ -232,7 +227,7 @@ public class X4OReaderSessionTest { X4OReaderSession reader = driver.createReaderSession(); Exception e = null; try { - reader.readUrlSession(null); + reader.readUrl(null); } catch (Exception catchE) { e = catchE; } diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ParentObjectTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ParentObjectTest.java index d0da6dc..3682889 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ParentObjectTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ParentObjectTest.java @@ -42,18 +42,15 @@ public class ParentObjectTest { @Test public void testParentElement() throws Exception { - X4OLanguageSession context = null; MTestDriver driver = new MTestDriver(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); - try { - context = reader.readResourceSession("junit/test-meta-parent-element.xml"); - Assertions.assertEquals(1,context.getRootElement().getChilderen().size()); - Element childElement = context.getRootElement().getChilderen().get(0); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "junit/test-meta-parent-element.xml"); + Assertions.assertEquals(1,session.getRootElement().getChilderen().size()); + Element childElement = session.getRootElement().getChilderen().get(0); JLabel test = (JLabel)childElement.getElementObject(); Assertions.assertEquals("parentTest",test.getText()); - } finally { - reader.releaseSession(context); } } diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ReferenceStoreTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ReferenceStoreTest.java index 37c2368..571371b 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ReferenceStoreTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/meta/ReferenceStoreTest.java @@ -40,46 +40,37 @@ public class ReferenceStoreTest { @Test public void testMetaGeneric() throws Exception { - X4OLanguageSession context = null; MTestDriver driver = new MTestDriver(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); - try { - context = reader.readResourceSession("junit/test-meta-generic.xml"); - Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName()); - } finally { - reader.releaseSession(context); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "junit/test-meta-generic.xml"); + Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(0).getElementObject().getClass().getName()); } } @Test public void testLoadClass() throws Exception { - X4OLanguageSession context = null; MTestDriver driver = new MTestDriver(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); - try { - context = reader.readResourceSession("junit/test-meta-reference.xml"); - Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName()); - } finally { - reader.releaseSession(context); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "junit/test-meta-reference.xml"); + Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(0).getElementObject().getClass().getName()); } } @Test public void testStoreRef() throws Exception { - X4OLanguageSession context = null; MTestDriver driver = new MTestDriver(); X4OReaderSession reader = driver.createReaderSession(); reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE); - try { - context = reader.readResourceSession("junit/test-meta-reference.xml"); - Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName()); - Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(1).getElementObject().getClass().getName()); - Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(2).getElementObject().getClass().getName()); - Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(3).getElementObject().getClass().getName()); - } finally { - reader.releaseSession(context); + try (X4OLanguageSession session = reader.createLanguageSession()) { + reader.readResourceSession(session, "junit/test-meta-reference.xml"); + Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(0).getElementObject().getClass().getName()); + Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(1).getElementObject().getClass().getName()); + Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(2).getElementObject().getClass().getName()); + Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(3).getElementObject().getClass().getName()); } } } From 889e4b9eb853eb6fc2b9cc866c64910f789e2205 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 6 Nov 2025 21:27:47 +0100 Subject: [PATCH 8/9] X4O: Some java cleanup and using new sax parser factory lookup --- .../java/org/x4o/xml/X4ODriverManager.java | 212 ++++++++---------- .../org/x4o/xml/conv/text/ByteConverter.java | 2 +- .../x4o/xml/conv/text/CharacterConverter.java | 2 +- .../x4o/xml/conv/text/DoubleConverter.java | 2 +- .../org/x4o/xml/conv/text/FloatConverter.java | 2 +- .../x4o/xml/conv/text/IntegerConverter.java | 2 +- .../org/x4o/xml/conv/text/LongConverter.java | 2 +- .../org/x4o/xml/el/X4OExpressionFactory.java | 16 +- .../java/org/x4o/xml/eld/EldModuleLoader.java | 22 +- .../org/x4o/xml/eld/EldModuleLoaderCore.java | 30 +-- .../org/x4o/xml/eld/lang/BeanElement.java | 2 +- .../eld/lang/ElementModuleBindingHandler.java | 4 +- .../org/x4o/xml/element/AbstractElement.java | 12 +- ...faultElementNamespaceInstanceProvider.java | 8 +- .../org/x4o/xml/io/AbstractX4OWriter.java | 7 +- .../java/org/x4o/xml/io/DefaultX4OReader.java | 1 - .../java/org/x4o/xml/io/DefaultX4OWriter.java | 131 +++++------ .../java/org/x4o/xml/io/X4OContentParser.java | 36 +-- .../java/org/x4o/xml/io/X4ODebugWriter.java | 2 +- .../org/x4o/xml/lang/DefaultX4OLanguage.java | 137 +++++------ .../xml/lang/DefaultX4OLanguageLoader.java | 41 ++-- .../x4o/xml/lang/X4OLanguageClassLoader.java | 32 ++- .../xml/lang/phase/X4OPhaseLanguageInit.java | 4 +- .../xml/lang/phase/X4OPhaseLanguageRead.java | 2 +- 24 files changed, 346 insertions(+), 365 deletions(-) diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java index f2b4c04..999c5c6 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java @@ -33,6 +33,10 @@ import java.util.List; import java.util.Map; import java.util.logging.Logger; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + import org.x4o.xml.lang.DefaultX4OLanguage; import org.x4o.xml.lang.DefaultX4OLanguageConfiguration; import org.x4o.xml.lang.X4OLanguage; @@ -51,10 +55,9 @@ import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.ext.DefaultHandler2; -import org.xml.sax.helpers.XMLReaderFactory; /** - * X4ODriverManager controls all the x4o driver and languages loaded in the classpath. + * X4ODriverManager controls all the x4o driver and languages loaded in the class-path. * * @author Willem Cazander * @version 1.0 Apr 6, 2013 @@ -65,57 +68,53 @@ public final class X4ODriverManager { private final static X4ODriverManager instance; private Logger logger = null; private volatile boolean reloadDrivers = true; - private Map classdrivers = null; - private Map defaultDrivers = null; - private Map> drivers = null; - private Map languageTasks = null; - + private Map classdrivers = null; + private Map defaultDrivers = null; + private Map> drivers = null; + private Map languageTasks = null; + private X4ODriverManager() { logger = Logger.getLogger(X4ODriverManager.class.getName()); - classdrivers = new HashMap(10); - defaultDrivers = new HashMap(10); - drivers = new HashMap>(10); - languageTasks = new HashMap(10); + classdrivers = new HashMap(10); + defaultDrivers = new HashMap(10); + drivers = new HashMap>(10); + languageTasks = new HashMap(10); } - + static { instance = new X4ODriverManager(); } - + private void registerX4OLanguageTask(String className) { try { - X4OLanguageTask task = (X4OLanguageTask)X4OLanguageClassLoader.newInstance(className); + X4OLanguageTask task = (X4OLanguageTask) X4OLanguageClassLoader.newInstance(className); if (languageTasks.containsKey(task.getId())) { - throw new RuntimeException("Can't add duplicate language task: "+task.getId()); + throw new RuntimeException("Can't add duplicate language task: " + task.getId()); } languageTasks.put(task.getId(), task); } catch (ClassNotFoundException e) { - throw new IllegalStateException(e.getMessage(),e); - } catch (InstantiationException e) { - throw new IllegalStateException(e.getMessage(),e); - } catch (IllegalAccessException e) { - throw new IllegalStateException(e.getMessage(),e); + throw new IllegalStateException(e.getMessage(), e); } } - + static public X4OLanguageTask getX4OLanguageTask(String taskId) { instance.lazyInit(); // fixme return instance.languageTasks.get(taskId); } - + static public List getX4OLanguageTasks() { instance.lazyInit(); // fixme return new ArrayList(instance.languageTasks.values()); } - + static protected String getDefaultLanguageVersion(String[] languages) { - if (languages==null || languages.length==0) { + if (languages == null || languages.length == 0) { return X4ODriver.DEFAULT_LANGUAGE_VERSION; } - String languageVersion = languages[languages.length-1]; + String languageVersion = languages[languages.length - 1]; return languageVersion; } - + static protected X4OPhaseManager getDefaultBuildPhaseManager() { DefaultX4OPhaseManager manager = new DefaultX4OPhaseManager(); new X4OPhaseLanguageInit().createPhases(manager); @@ -123,85 +122,61 @@ public final class X4ODriverManager { new X4OPhaseLanguageWrite().createPhases(manager); return manager; } - - static protected X4OLanguage getDefaultBuildLanguage(X4ODriver driver,String version) { - if (version==null) { + + static protected X4OLanguage getDefaultBuildLanguage(X4ODriver driver, String version) { + if (version == null) { version = driver.getLanguageVersionDefault(); } - DefaultX4OLanguage result = new DefaultX4OLanguage( - driver.buildLanguageConfiguration(), - driver.buildPhaseManager(), - driver.getLanguageName(), - version - ); + DefaultX4OLanguage result = new DefaultX4OLanguage(driver.buildLanguageConfiguration(), driver.buildPhaseManager(), driver.getLanguageName(), version); try { result.getPhaseManager().runPhases(result.createLanguageSession(), X4OPhaseType.INIT); // TODO: fix phase to interface T } catch (X4OPhaseException e) { - throw new RuntimeException(e); //TODO: change layer + throw new RuntimeException(e); // TODO: change layer } return result; } - + static protected X4OLanguageConfiguration getDefaultBuildLanguageConfiguration() { DefaultX4OLanguageConfiguration config = new DefaultX4OLanguageConfiguration(); config.fillDefaults(); X4OLanguageConfiguration result = config.createProxy(); return result; } - - /* - static public void setGlobalProperty(X4ODriver driver,String key,Object value) { - Map driverProperties = instance.globalProperties.get(driver.getLanguageName()); - if (driverProperties==null) { - driverProperties = new HashMap(20); - instance.globalProperties.put(driver.getLanguageName(), driverProperties); - } - String keyLimits[] = driver.getGlobalPropertyKeySet(); - for (int i=0;i driver) { - if (driver==null) { + if (driver == null) { throw new NullPointerException("Can't register null driver."); } - if (driver.getLanguageName()==null) { - throw new NullPointerException("Error in driver impl languageName is null in: "+driver.getClass()); + if (driver.getLanguageName() == null) { + throw new NullPointerException("Error in driver impl languageName is null in: " + driver.getClass()); } - if (driver.getLanguageName().length()==0) { - throw new IllegalArgumentException("Error in driver impl languageName is empty in: "+driver.getClass()); + if (driver.getLanguageName().length() == 0) { + throw new IllegalArgumentException("Error in driver impl languageName is empty in: " + driver.getClass()); } - if (driver.getLanguageVersions()==null) { - throw new NullPointerException("Error in driver impl languageVersions is null in: "+driver.getClass()); + if (driver.getLanguageVersions() == null) { + throw new NullPointerException("Error in driver impl languageVersions is null in: " + driver.getClass()); } - if (driver.getLanguageVersions().length==0) { - throw new IllegalArgumentException("Error in driver impl languageVersions is empty in: "+driver.getClass()); + if (driver.getLanguageVersions().length == 0) { + throw new IllegalArgumentException("Error in driver impl languageVersions is empty in: " + driver.getClass()); } instance.drivers.put(driver.getLanguageName(), driver); } - + static public void deregisterX4ODriver(X4ODriver driver) { - if (driver==null) { + if (driver == null) { throw new NullPointerException("Can't deregister null driver."); } - if (driver.getLanguageName()==null) { - throw new NullPointerException("Error in driver impl languageName is null in: "+driver.getClass()); + if (driver.getLanguageName() == null) { + throw new NullPointerException("Error in driver impl languageName is null in: " + driver.getClass()); } instance.drivers.remove(driver.getLanguageName()); } - + static public X4ODriver getX4ODriver(String language) { - if (language==null) { + if (language == null) { throw new NullPointerException("Can't provider driver for null language."); } - if (language.length()==0) { + if (language.length() == 0) { throw new IllegalArgumentException("Can't provider driver for empty language."); } if (instance.drivers.containsKey(language)) { @@ -209,12 +184,12 @@ public final class X4ODriverManager { } instance.lazyInit(); X4ODriver result = instance.createX4ODriver(language); - if (result==null) { - throw new IllegalArgumentException("Can't find driver for language: "+language); + if (result == null) { + throw new IllegalArgumentException("Can't find driver for language: " + language); } return result; } - + static public List getX4OLanguages() { instance.lazyInit(); List result = new ArrayList(10); @@ -223,15 +198,15 @@ public final class X4ODriverManager { Collections.sort(result); return result; } - + private void lazyInit() { - if (reloadDrivers==false) { + if (reloadDrivers == false) { return; } instance.loadLanguageDrivers(); reloadDrivers = false; } - + private X4ODriver createX4ODriver(String language) { String driverClassName = null; if (classdrivers.containsKey(language)) { @@ -239,71 +214,70 @@ public final class X4ODriverManager { } else if (defaultDrivers.containsKey(language)) { driverClassName = defaultDrivers.get(language); } - if (driverClassName==null) { + if (driverClassName == null) { return null; } try { Class driverClass = X4OLanguageClassLoader.loadClass(driverClassName); - //Constructor markedConstructor = driverClass.getDeclaredConstructor(new Class[]{ConstructorMarker.class}); - //X4ODriver driver = (X4ODriver)markedConstructor.newInstance(new Object[]{new ConstructorMarker()}); - X4ODriver driver = (X4ODriver)driverClass.newInstance(); + // Constructor markedConstructor = driverClass.getDeclaredConstructor(new Class[]{ConstructorMarker.class}); + // X4ODriver driver = (X4ODriver)markedConstructor.newInstance(new Object[]{new ConstructorMarker()}); + X4ODriver driver = (X4ODriver) X4OLanguageClassLoader.newInstance(driverClass); registerX4ODriver(driver); return driver; } catch (ClassNotFoundException e) { - throw new IllegalStateException(e.getMessage(),e); - } catch (InstantiationException e) { - throw new IllegalStateException(e.getMessage(),e); - } catch (IllegalAccessException e) { - throw new IllegalStateException(e.getMessage(),e); + throw new IllegalStateException(e.getMessage(), e); } } - + /* - * Class to make sure all driver instances are created by this manager instance. - - final public class ConstructorMarker { - private ConstructorMarker() { - } - }*/ - + * TODO: Class to make sure all driver instances are created by this manager instance. + * + * final public class ConstructorMarker { private ConstructorMarker() { } } + */ + /** * Loads all defined language drivers in classpath. */ private void loadLanguageDrivers() { - logger.finer("loading x4o drivers from: "+X4O_DRIVERS_RESOURCE); + logger.finer("loading x4o drivers from: " + X4O_DRIVERS_RESOURCE); try { Enumeration e = Thread.currentThread().getContextClassLoader().getResources(X4O_DRIVERS_RESOURCE); - while(e.hasMoreElements()) { + while (e.hasMoreElements()) { URL u = e.nextElement(); loadDriversXml(u.openStream()); } - e = Thread.currentThread().getContextClassLoader().getResources("/"+X4O_DRIVERS_RESOURCE); - while(e.hasMoreElements()) { + e = Thread.currentThread().getContextClassLoader().getResources("/" + X4O_DRIVERS_RESOURCE); + while (e.hasMoreElements()) { URL u = e.nextElement(); loadDriversXml(u.openStream()); } } catch (Exception e) { - throw new IllegalStateException(e.getMessage(),e); + throw new IllegalStateException(e.getMessage(), e); } } - + /** * Parser xml inputstream and add into drivers and defaultDrivers lists. - * @param in The inputstream to parser. + * + * @param in The inputstream to parser. * @throws IOException * @throws SAXException + * @throws ParserConfigurationException */ - private void loadDriversXml(InputStream in) throws IOException, SAXException { - if (in==null) { + private void loadDriversXml(InputStream in) throws IOException, SAXException, ParserConfigurationException { + if (in == null) { throw new NullPointerException("Can't parse null input stream"); } DriversTagHandler xth = new DriversTagHandler(); - XMLReader saxParser = XMLReaderFactory.createXMLReader(); - saxParser.setContentHandler(xth); - saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", xth); - saxParser.setProperty("http://xml.org/sax/properties/declaration-handler",xth); + SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); + SAXParser parser = factory.newSAXParser(); + XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(xth); + reader.setProperty("http://xml.org/sax/properties/lexical-handler", xth); + reader.setProperty("http://xml.org/sax/properties/declaration-handler", xth); try { - saxParser.parse(new InputSource(in)); + reader.parse(new InputSource(in)); } finally { in.close(); } @@ -311,26 +285,26 @@ public final class X4ODriverManager { private class DriversTagHandler extends DefaultHandler2 { @Override - public void startElement(String namespaceUri, String tag, String qName,Attributes attr) throws SAXException { + public void startElement(String namespaceUri, String tag, String qName, Attributes attr) throws SAXException { if ("drivers".equals(tag)) { String version = attr.getValue("version"); - logger.finest("Version attribute: "+version); + logger.finest("Version attribute: " + version); } else if ("driver".equals(tag)) { String language = attr.getValue("language"); String className = attr.getValue("className"); - logger.finest("Driver className: "+className+" for language: "+language); - if (classdrivers.containsKey(className)==false) { - classdrivers.put(language,className); + logger.finest("Driver className: " + className + " for language: " + language); + if (classdrivers.containsKey(className) == false) { + classdrivers.put(language, className); } } else if ("defaultDriver".equals(tag)) { String language = attr.getValue("language"); - logger.finest("DefaultDriver language: "+language); - if (defaultDrivers.containsKey(language)==false) { - defaultDrivers.put(language,language); + logger.finest("DefaultDriver language: " + language); + if (defaultDrivers.containsKey(language) == false) { + defaultDrivers.put(language, language); } } else if ("languageTask".equals(tag)) { String className = attr.getValue("className"); - logger.finest("Language task className: "+className); + logger.finest("Language task className: " + className); X4ODriverManager.instance.registerX4OLanguageTask(className); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/ByteConverter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/ByteConverter.java index c190cac..70f9b86 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/ByteConverter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/ByteConverter.java @@ -57,7 +57,7 @@ public class ByteConverter extends AbstractStringObjectConverter { * @throws ObjectConverterException When conversion fails. */ public Object convertStringTo(String str, Locale locale) throws ObjectConverterException { - return new Byte(str); + return Byte.valueOf(str); } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/CharacterConverter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/CharacterConverter.java index 79aeead..5ca6ad8 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/CharacterConverter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/CharacterConverter.java @@ -57,7 +57,7 @@ public class CharacterConverter extends AbstractStringObjectConverter { * @throws ObjectConverterException When conversion fails. */ public Object convertStringTo(String str, Locale locale) throws ObjectConverterException { - return new Character(str.charAt(0)); + return Character.valueOf(str.charAt(0)); } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/DoubleConverter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/DoubleConverter.java index 3c00da0..57207cf 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/DoubleConverter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/DoubleConverter.java @@ -57,7 +57,7 @@ public class DoubleConverter extends AbstractStringObjectConverter { * @throws ObjectConverterException When conversion fails. */ public Object convertStringTo(String str, Locale locale) throws ObjectConverterException { - return new Double(str); + return Double.valueOf(str); } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/FloatConverter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/FloatConverter.java index 37913b7..e7720e5 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/FloatConverter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/FloatConverter.java @@ -57,7 +57,7 @@ public class FloatConverter extends AbstractStringObjectConverter { * @throws ObjectConverterException When conversion fails. */ public Object convertStringTo(String str, Locale locale) throws ObjectConverterException { - return new Float(str); + return Float.valueOf(str); } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/IntegerConverter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/IntegerConverter.java index 1c03095..e941dd3 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/IntegerConverter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/IntegerConverter.java @@ -57,7 +57,7 @@ public class IntegerConverter extends AbstractStringObjectConverter { * @throws ObjectConverterException When conversion fails. */ public Object convertStringTo(String str, Locale locale) throws ObjectConverterException { - return new Integer(str); + return Integer.valueOf(str); } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/LongConverter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/LongConverter.java index 09ec814..fa6c9d7 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/LongConverter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/conv/text/LongConverter.java @@ -57,7 +57,7 @@ public class LongConverter extends AbstractStringObjectConverter { * @throws ObjectConverterException When conversion fails. */ public Object convertStringTo(String str, Locale locale) throws ObjectConverterException { - return new Long(str); + return Long.valueOf(str); } /** diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java index e03a570..d7c0de0 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/el/X4OExpressionFactory.java @@ -42,25 +42,23 @@ public class X4OExpressionFactory { ExpressionFactory result = null; try { Class expressionFactoryClass = X4OLanguageClassLoader.loadClass(EL_FACTORY_IMPL_APACHE); - result = (ExpressionFactory) expressionFactoryClass.newInstance(); - } catch (Exception e) { + result = X4OLanguageClassLoader.newInstance(ExpressionFactory.class, expressionFactoryClass); + } catch (ClassNotFoundException e) { try { Class expressionFactoryClass = X4OLanguageClassLoader.loadClass(EL_FACTORY_IMPL_ODYSSEUS); - result = (ExpressionFactory) expressionFactoryClass.newInstance(); - } catch (Exception ee) { + result = X4OLanguageClassLoader.newInstance(ExpressionFactory.class, expressionFactoryClass); + } catch (ClassNotFoundException ee) { throw new RuntimeException("Could not load ExpressionFactory tried: "+EL_FACTORY_IMPL_APACHE+" and "+EL_FACTORY_IMPL_ODYSSEUS+" but could not load one of them."); } } return result; } - static public ELContext createELContext(Class elContextClass) { - ELContext result = null; + static public ELContext createELContext(Class elContextClass) { try { - result = (ELContext)X4OLanguageClassLoader.newInstance(elContextClass); - } catch (Exception e) { + return X4OLanguageClassLoader.newInstance(ELContext.class, elContextClass); + } catch (ClassNotFoundException e) { throw new RuntimeException("Could not create instance of ELContext: "+e.getMessage(),e); } - return result; } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java index 079ef85..e02e45d 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java @@ -49,9 +49,9 @@ import org.xml.sax.SAXException; */ public class EldModuleLoader implements X4OLanguageModuleLoader { - private Logger logger = null; - private String eldResource = null; - private boolean isEldCore = false; + private final Logger logger; + private final String eldResource; + private final boolean isEldCore; /** The EL key to access the parent language module. */ public static final String EL_PARENT_LANGUAGE_MODULE = "parentLanguageModule"; @@ -65,12 +65,12 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { * @param isEldCore If true then load CEL else load ELD. */ public EldModuleLoader(String eldResource,boolean isEldCore) { - if (eldResource==null) { + if (eldResource == null) { throw new NullPointerException("Can't load null eld resource."); } - logger = Logger.getLogger(EldModuleLoader.class.getName()); - this.eldResource=eldResource; - this.isEldCore=isEldCore; + this.logger = Logger.getLogger(EldModuleLoader.class.getName()); + this.eldResource = eldResource; + this.isEldCore = isEldCore; } /** @@ -80,8 +80,8 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { * @throws X4OLanguageModuleLoaderException When eld language could not be loaded. * @see org.x4o.xml.lang.X4OLanguageModuleLoader#loadLanguageModule(org.x4o.xml.lang.X4OLanguageLocal, org.x4o.xml.lang.X4OLanguageModuleLocal) */ - public void loadLanguageModule(X4OLanguageLocal language,X4OLanguageModuleLocal languageModule) throws X4OLanguageModuleLoaderException { - logger.fine("Loading name eld file from resource: "+eldResource); + public void loadLanguageModule(X4OLanguageLocal language, X4OLanguageModuleLocal languageModule) throws X4OLanguageModuleLoaderException { + logger.fine("Loading name eld file from resource: " + eldResource); try { X4ODriver driver = null; if (isEldCore) { @@ -97,9 +97,7 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { reader.addELBeanInstance(EL_PARENT_LANGUAGE, language); reader.addELBeanInstance(EL_PARENT_LANGUAGE_MODULE, languageModule); - //language.createLanguageSession() - - reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_HANDLER, reader); + reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_HANDLER, null); //TODO: if (language.getLanguageConfiguration().getLanguagePropertyBoolean(X4OLanguageProperty.DEBUG_OUTPUT_ELD_PARSER)) { // eldLang.setX4ODebugWriter(elementLanguage.getLanguageConfiguration().getX4ODebugWriter()); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java index 9fc5f9b..ccca958 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java @@ -210,21 +210,17 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { logger.finer("Creating "+language.getLanguageName()+" namespace."); ElementNamespace namespace; try { - namespace = (ElementNamespace)X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementNamespace()); - } catch (InstantiationException e) { + namespace = X4OLanguageClassLoader.newInstance(ElementNamespace.class, language.getLanguageConfiguration().getDefaultElementNamespace()); + } catch (ClassNotFoundException e) { throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); - } catch (IllegalAccessException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); - } + } try { - namespace.setElementNamespaceInstanceProvider((ElementNamespaceInstanceProvider) - X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider()) + namespace.setElementNamespaceInstanceProvider( + X4OLanguageClassLoader.newInstance(ElementNamespaceInstanceProvider.class, language.getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider()) ); - } catch (InstantiationException e) { + } catch (ClassNotFoundException e) { throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); - } catch (IllegalAccessException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); - } + } namespace.setId(id); namespace.setUri(uri); @@ -236,15 +232,13 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { private ElementClass createElementClass(X4OLanguage language,String tag,Class objectClass,Class elementClass,String description) throws X4OLanguageModuleLoaderException { try { - ElementClass result = (ElementClass)X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementClass()); + ElementClass result = X4OLanguageClassLoader.newInstance(ElementClass.class, language.getLanguageConfiguration().getDefaultElementClass()); result.setId(tag); result.setObjectClass(objectClass); result.setElementClass(elementClass); result.setDescription(description); return result; - } catch (InstantiationException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); - } catch (IllegalAccessException e) { + } catch (ClassNotFoundException e) { throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); } } @@ -260,7 +254,7 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { */ private ElementClassAttribute createElementClassAttribute(X4OLanguage language,String name,boolean required,ObjectConverter converter) throws X4OLanguageModuleLoaderException { try { - ElementClassAttribute result = (ElementClassAttribute)X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementClassAttribute()); + ElementClassAttribute result = X4OLanguageClassLoader.newInstance(ElementClassAttribute.class, language.getLanguageConfiguration().getDefaultElementClassAttribute()); result.setId(name); if (required) { result.setRequired(required); @@ -269,9 +263,7 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { result.setObjectConverter(converter); } return result; - } catch (InstantiationException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); - } catch (IllegalAccessException e) { + } catch (ClassNotFoundException e) { throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/BeanElement.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/BeanElement.java index 98e545f..dd2c486 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/BeanElement.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/BeanElement.java @@ -59,7 +59,7 @@ public class BeanElement extends AbstractElement { try { Class beanClass = X4OLanguageClassLoader.loadClass(className); if (constructorArguments.isEmpty()) { - setElementObject(beanClass.newInstance()); + setElementObject(X4OLanguageClassLoader.newInstance(beanClass)); } else { Class[] arguClass = new Class[constructorArguments.size()]; constructorArguments.toArray(arguClass); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/ElementModuleBindingHandler.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/ElementModuleBindingHandler.java index c15424f..9f2953f 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/ElementModuleBindingHandler.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/lang/ElementModuleBindingHandler.java @@ -131,8 +131,8 @@ public class ElementModuleBindingHandler extends AbstractElementBindingHandler< } try { - elementNamespace.setElementNamespaceInstanceProvider((ElementNamespaceInstanceProvider)X4OLanguageClassLoader.newInstance(childElement.getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider())); - } catch (Exception e) { + elementNamespace.setElementNamespaceInstanceProvider(X4OLanguageClassLoader.newInstance(ElementNamespaceInstanceProvider.class, childElement.getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider())); + } catch (ClassNotFoundException e) { throw new ElementBindingHandlerException("Error loading: "+e.getMessage(),e); } try { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElement.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElement.java index 2b67851..994291a 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElement.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/AbstractElement.java @@ -132,10 +132,10 @@ public abstract class AbstractElement implements Element { */ public void doCharacters(String characters) throws ElementException { try { - Element e = (Element)X4OLanguageClassLoader.newInstance(getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementBodyCharacters()); + Element e = X4OLanguageClassLoader.newInstance(Element.class, getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementBodyCharacters()); e.setElementObject(characters); addChild(e); - } catch (Exception exception) { + } catch (ClassNotFoundException exception) { throw new ElementException(exception); } } @@ -145,10 +145,10 @@ public abstract class AbstractElement implements Element { */ public void doComment(String comment) throws ElementException { try { - Element e = (Element)X4OLanguageClassLoader.newInstance(getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementBodyComment()); + Element e = X4OLanguageClassLoader.newInstance(Element.class, getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementBodyComment()); e.setElementObject(comment); addChild(e); - } catch (Exception exception) { + } catch (ClassNotFoundException exception) { throw new ElementException(exception); } } @@ -158,10 +158,10 @@ public abstract class AbstractElement implements Element { */ public void doIgnorableWhitespace(String space) throws ElementException { try { - Element e = (Element)X4OLanguageClassLoader.newInstance(getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementBodyWhitespace()); + Element e = X4OLanguageClassLoader.newInstance(Element.class, getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementBodyWhitespace()); e.setElementObject(space); addChild(e); - } catch (Exception exception) { + } catch (ClassNotFoundException exception) { throw new ElementException(exception); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementNamespaceInstanceProvider.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementNamespaceInstanceProvider.java index 34658e6..83296e4 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementNamespaceInstanceProvider.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/element/DefaultElementNamespaceInstanceProvider.java @@ -86,13 +86,9 @@ public class DefaultElementNamespaceInstanceProvider implements ElementNamespace if (elementClass.getObjectClass()!=null) { element.setElementObject(X4OLanguageClassLoader.newInstance(elementClass.getObjectClass())); } - } catch (InstantiationException e) { + } catch (ClassNotFoundException e) { throw new ElementNamespaceInstanceProviderException(this,"Error while providing Element: "+e.getMessage(),e); - } catch (IllegalAccessException e) { - throw new ElementNamespaceInstanceProviderException(this,"Error while providing Element: "+e.getMessage(),e); - } /*catch (ClassNotFoundException e) { - throw new ElementNamespaceInstanceProviderException(this,"Error while providing Element: "+e.getMessage(),e); - } */ + } element.setElementClass(elementClass); element.setLanguageSession(languageSession); return element; diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java index 960a5c3..3289c8e 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java @@ -29,6 +29,7 @@ import java.io.OutputStream; import org.x4o.xml.element.Element; import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageClassLoader; import org.x4o.xml.lang.X4OLanguageSession; import org.xml.sax.SAXException; @@ -49,10 +50,8 @@ public abstract class AbstractX4OWriter extends AbstractX4OWriterSession i X4OLanguageSession context = createLanguageSession(); Element rootElement = null; try { - rootElement = (Element)context.getLanguage().getLanguageConfiguration().getDefaultElement().newInstance(); - } catch (InstantiationException e) { - throw new SAXException(e); - } catch (IllegalAccessException e) { + rootElement = X4OLanguageClassLoader.newInstance(Element.class, context.getLanguage().getLanguageConfiguration().getDefaultElement()); + } catch (ClassNotFoundException e) { throw new SAXException(e); } rootElement.setElementObject(object); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java index 1e3c518..c6a042d 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java @@ -40,7 +40,6 @@ import org.x4o.sax3.io.SAX3PropertyConfig.PropertyConfigItem; import org.x4o.xml.lang.X4OLanguage; import org.x4o.xml.lang.X4OLanguageSession; import org.x4o.xml.lang.X4OLanguageSessionLocal; -import org.x4o.xml.lang.phase.X4OPhaseException; import org.x4o.xml.lang.phase.X4OPhaseType; import org.xml.sax.EntityResolver; import org.xml.sax.ErrorHandler; diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java index 671f0c1..529a3ef 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java @@ -64,11 +64,12 @@ import org.xml.sax.helpers.AttributesImpl; public class DefaultX4OWriter extends AbstractX4OWriter { private final SAX3PropertyConfig propertyConfig; + private boolean schemaUriPrint; + private String schemaUriRoot; + private final static AttributeEntryComparator ATTR_ENTRY_COMPARATOR = new AttributeEntryComparator(); private final static String PROPERTY_CONTEXT_PREFIX = SAX3PropertyConfig.X4O_PROPERTIES_PREFIX+"writer/x4o/"; - public final static SAX3PropertyConfig DEFAULT_PROPERTY_CONFIG; - public final static String OUTPUT_STREAM = PROPERTY_CONTEXT_PREFIX+"output/stream"; public final static String OUTPUT_XDBX = PROPERTY_CONTEXT_PREFIX+"output/xdbx"; public final static String SCHEMA_PRINT = PROPERTY_CONTEXT_PREFIX+"schema/print"; @@ -95,7 +96,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { */ public DefaultX4OWriter(X4OLanguage language) { super(language); - propertyConfig = new SAX3PropertyConfig(DEFAULT_PROPERTY_CONFIG,PROPERTY_CONTEXT_PREFIX); + propertyConfig = new SAX3PropertyConfig(DEFAULT_PROPERTY_CONFIG, PROPERTY_CONTEXT_PREFIX); } /** @@ -108,7 +109,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { /** * @see org.x4o.xml.io.X4OWriterSession#writeSession(org.x4o.xml.lang.X4OLanguageSession, java.io.OutputStream) */ - public void writeSession(X4OLanguageSession languageSession,OutputStream output) throws X4OConnectionException,SAXException,IOException { + public void writeSession(X4OLanguageSession languageSession, OutputStream output) throws X4OConnectionException,SAXException,IOException { setProperty(OUTPUT_STREAM, output); addPhaseSkip(X4OPhaseLanguageWrite.WRITE_RELEASE); debugStart(languageSession, DEBUG_OUTPUT_HANDLER, DEBUG_OUTPUT_STREAM, DEBUG_OUTPUT_STREAM_CLOSE); @@ -120,23 +121,20 @@ public class DefaultX4OWriter extends AbstractX4OWriter { runWrite(languageSession); } - private AttributeEntryComparator attributeEntryComparator = new AttributeEntryComparator(); - private boolean schemaUriPrint; - private String schemaUriRoot; - private void runWrite(X4OLanguageSession languageSession) throws X4OConnectionException { OutputStream out = (OutputStream)getProperty(OUTPUT_STREAM); try { String encoding = getPropertyConfig().getPropertyString(SAX3WriterXml.OUTPUT_ENCODING); schemaUriPrint = getPropertyConfig().getPropertyBoolean(SCHEMA_PRINT); schemaUriRoot = getPropertyConfig().getPropertyString(SCHEMA_ROOT_URI); - if (encoding==null) { encoding = SAX3XMLConstants.XML_DEFAULT_ENCODING; } - + if (encoding == null) { + encoding = SAX3XMLConstants.XML_DEFAULT_ENCODING; + } Element root = languageSession.getRootElement(); - if (schemaUriRoot==null) { + if (schemaUriRoot == null) { String rootUri = findElementUri(root); ElementNamespace ns = languageSession.getLanguage().findElementNamespace(rootUri); - if (ns!=null) { + if (ns != null) { schemaUriRoot = ns.getSchemaUri(); } } @@ -153,9 +151,9 @@ public class DefaultX4OWriter extends AbstractX4OWriter { } writer.startDocument(); - Map prefixes = new HashMap(); + Map prefixes = new HashMap<>(); startPrefixTree(root,prefixes); - for (String uri:prefixes.keySet()) { + for (String uri : prefixes.keySet()) { String prefix = prefixes.get(uri); writer.startPrefixMapping(prefix, uri); } @@ -182,20 +180,20 @@ public class DefaultX4OWriter extends AbstractX4OWriter { } } - private void startPrefixTree(Element element,Map result) throws SAXException { + private void startPrefixTree(Element element, Map result) throws SAXException { String elementUri = findElementUri(element); - if (result.containsKey(elementUri)==false) { - String elementUriPrefix = findNamespacePrefix(element,elementUri); + if (result.containsKey(elementUri) == false) { + String elementUriPrefix = findNamespacePrefix(element, elementUri); result.put(elementUri, elementUriPrefix); } - for (Element e:element.getChilderen()) { + for (Element e : element.getChilderen()) { startPrefixTree(e,result); } } private List getProperties(Class objectClass) { List result = new ArrayList(); - for (Method m:objectClass.getMethods()) { + for (Method m : objectClass.getMethods()) { Class[] types = m.getParameterTypes(); if (types.length != 0) { continue; @@ -206,78 +204,81 @@ public class DefaultX4OWriter extends AbstractX4OWriter { if (m.getName().startsWith("get")==false) { continue; } - String name = m.getName().substring(3,4).toLowerCase()+m.getName().substring(4); + String name = m.getName().substring(3, 4).toLowerCase() + m.getName().substring(4); result.add(name); - } return result; } - class AttributeEntry { - String id; - String value; - Integer writeOrder; + + static final class AttributeEntry { + final String id; + final String value; + final Integer writeOrder; + + public AttributeEntry(String id, String value, Integer writeOrder) { + this.id = id; + this.value = value; + this.writeOrder = writeOrder; + } } - class AttributeEntryComparator implements Comparator { + + static final class AttributeEntryComparator implements Comparator { + + @Override public int compare(AttributeEntry o1, AttributeEntry o2) { return o1.writeOrder.compareTo(o2.writeOrder); } } - private void writeTree(ContentWriter writer,Element element,boolean isRoot) throws SAXException, ElementObjectPropertyValueException { + + private void writeTree(ContentWriter writer, Element element, boolean isRoot) throws SAXException, ElementObjectPropertyValueException { List attr = new ArrayList(20); - if (element.getElementClass().getAutoAttributes()!=null && element.getElementClass().getAutoAttributes()==false) { + if (element.getElementClass().getAutoAttributes() != null && element.getElementClass().getAutoAttributes() == false) { for (ElementClassAttribute eca:element.getElementClass().getElementClassAttributes()) { - if (eca.getRunBeanValue()!=null && eca.getRunBeanValue()==false) { + if (eca.getRunBeanValue() != null && eca.getRunBeanValue() == false) { continue; } - - Object value = element.getLanguageSession().getElementObjectPropertyValue().getProperty(element.getElementObject(),eca.getId()); - if (value==null) { + Object value = element.getLanguageSession().getElementObjectPropertyValue().getProperty(element.getElementObject(), eca.getId()); + if (value == null) { continue; } - AttributeEntry e = new AttributeEntry(); - e.id = eca.getId(); - e.value = ""+value; - e.writeOrder = calcOrderNumber(e.id,eca.getWriteOrder()); + AttributeEntry e = new AttributeEntry(eca.getId(), ""+value, calcOrderNumber(eca.getId(),eca.getWriteOrder())); attr.add(e); } } else { - for (String p:getProperties(element.getElementObject().getClass())) { + for (String p : getProperties(element.getElementObject().getClass())) { Integer writeOrder = null; ElementClassAttribute eca = element.getElementClass().getElementClassAttributeByName(p); - if (eca!=null) { + if (eca != null) { writeOrder = eca.getWriteOrder(); } - if (eca!=null && eca.getRunBeanValue()!=null && eca.getRunBeanValue()) { + if (eca != null && eca.getRunBeanValue() != null && eca.getRunBeanValue()) { continue; } boolean writeValue = true; - for (ElementInterface ei:element.getLanguageSession().getLanguage().findElementInterfaces(element.getElementObject().getClass())) { + for (ElementInterface ei : element.getLanguageSession().getLanguage().findElementInterfaces(element.getElementObject().getClass())) { eca = ei.getElementClassAttributeByName(p); - if (eca!=null && writeOrder==null) { + if (eca != null && writeOrder == null) { writeOrder = eca.getWriteOrder(); // add interface but allow override local } - if (eca!=null && eca.getRunBeanValue()!=null && eca.getRunBeanValue()==false) { + if (eca != null && eca.getRunBeanValue() != null && eca.getRunBeanValue() == false) { writeValue = false; break; } } - if (writeValue==false) { + if (writeValue == false) { continue; } // TODO: check attr see reader - Object value = element.getLanguageSession().getElementObjectPropertyValue().getProperty(element.getElementObject(),p); - if (value==null) { + Object value = element.getLanguageSession().getElementObjectPropertyValue().getProperty(element.getElementObject(), p); + if (value == null) { continue; } if (value instanceof List || value instanceof Collection) { continue; // TODO; filter on type of childeren } - AttributeEntry e = new AttributeEntry(); - e.id = p; - e.value = ""+value; - e.writeOrder = calcOrderNumber(e.id,writeOrder); + AttributeEntry e = new AttributeEntry(p, ""+value, calcOrderNumber(p,writeOrder)); attr.add(e); } } @@ -291,8 +292,8 @@ public class DefaultX4OWriter extends AbstractX4OWriter { } // Sort attributes in natural order of localName and add to attributes - Collections.sort(attr, attributeEntryComparator); - for (int i=0;i extends AbstractX4OWriter { // Write Element tree recursive. String elementUri = findElementUri(element); writer.startElement(elementUri, element.getElementClass().getId(), "", atts); - for (Element e:element.getChilderen()) { - writeTree(writer,e,false); + for (Element e : element.getChilderen()) { + writeTree(writer, e, false); } writer.endElement(elementUri, element.getElementClass().getId(), ""); } // TODO: move to defaults layer so visible in docs. - private Integer calcOrderNumber(String name,Integer orderNumberOverride) { - if (orderNumberOverride!=null) { + private Integer calcOrderNumber(String name, Integer orderNumberOverride) { + if (orderNumberOverride != null) { return orderNumberOverride; } - if (name==null) { + if (name == null) { throw new NullPointerException("Can't calculate order of null name."); } int nameSize = name.length(); - if (nameSize==1) { + if (nameSize == 1) { return (name.charAt(0) * 1000); } - if (nameSize==2) { + if (nameSize == 2) { return (name.charAt(0) * 1000) + (name.charAt(1) * 100); } - if (nameSize==3) { + if (nameSize == 3) { return (name.charAt(0) * 1000) + (name.charAt(1) * 100) + (name.charAt(2) * 10); } - if (nameSize>3) { + if (nameSize > 3) { return (name.charAt(0) * 1000) + (name.charAt(1) * 100) + (name.charAt(2) * 10) + (name.charAt(3) * 1); } throw new IllegalArgumentException("Can't calculate order of empty name."); } private String findElementUri(Element e) { - for (X4OLanguageModule mod:e.getLanguageSession().getLanguage().getLanguageModules()) { - for (ElementNamespace c:mod.getElementNamespaces()) { + for (X4OLanguageModule mod : e.getLanguageSession().getLanguage().getLanguageModules()) { + for (ElementNamespace c : mod.getElementNamespaces()) { ElementClass ec = c.getElementClass(e.getElementClass().getId()); - if (ec!=null) { + if (ec != null) { return c.getUri(); } } @@ -342,9 +343,9 @@ public class DefaultX4OWriter extends AbstractX4OWriter { return null; } - private String findNamespacePrefix(Element e,String uri) { + private String findNamespacePrefix(Element e, String uri) { ElementNamespace ns = e.getLanguageSession().getLanguage().findElementNamespace(uri); - if (ns.getPrefixMapping()!=null) { + if (ns.getPrefixMapping() != null) { return ns.getPrefixMapping(); } return ns.getId(); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OContentParser.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OContentParser.java index d4e79a4..da0e1c4 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OContentParser.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4OContentParser.java @@ -29,7 +29,6 @@ import org.x4o.xml.lang.X4OLanguageSession; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; -import org.xml.sax.helpers.XMLReaderFactory; import java.io.IOException; import java.io.InputStream; @@ -38,6 +37,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + /** * X4OContentParser Runs the SAX parser with the X4OContentHandler. * @@ -56,7 +59,7 @@ public class X4OContentParser { return propertyConfig; } - public void parse(X4OLanguageSession languageSession) throws SAXException, IOException { + public void parse(X4OLanguageSession languageSession) throws SAXException, IOException, ParserConfigurationException { // Group debug config property messages if (languageSession.hasX4ODebugWriter()) { languageSession.getX4ODebugWriter().debugSAXConfigStart(); @@ -70,7 +73,7 @@ public class X4OContentParser { } } - private void parseSax(X4OLanguageSession languageSession) throws SAXException, IOException { + private void parseSax(X4OLanguageSession languageSession) throws SAXException, IOException, ParserConfigurationException { // If xsd caching is needed this should be the way //XMLParserConfiguration config = new XIncludeAwareParserConfiguration(); //config.setProperty("http://apache.org/xml/properties/internal/grammar-pool",myFullGrammarPool); @@ -78,19 +81,22 @@ public class X4OContentParser { // Create Sax parser with x4o tag handler X4OContentHandler xth = new X4OContentHandler(languageSession,getPropertyConfig()); - XMLReader saxParser = XMLReaderFactory.createXMLReader(); - saxParser.setErrorHandler(new X4OErrorHandler(languageSession,getPropertyConfig())); - saxParser.setEntityResolver(new X4OEntityResolver(languageSession,getPropertyConfig())); - saxParser.setContentHandler(xth); - saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", xth); - saxParser.setProperty("http://xml.org/sax/properties/declaration-handler",xth); + SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); + SAXParser parser = factory.newSAXParser(); + XMLReader reader = parser.getXMLReader(); + reader.setErrorHandler(new X4OErrorHandler(languageSession,getPropertyConfig())); + reader.setEntityResolver(new X4OEntityResolver(languageSession,getPropertyConfig())); + reader.setContentHandler(xth); + reader.setProperty("http://xml.org/sax/properties/lexical-handler", xth); + reader.setProperty("http://xml.org/sax/properties/declaration-handler",xth); // Set properties and optional Map saxParserProperties = getSAXParserProperties(languageSession); for (Map.Entry entry:saxParserProperties.entrySet()) { String name = entry.getKey(); Object value= entry.getValue(); - saxParser.setProperty(name, value); + reader.setProperty(name, value); debugMessage("property",name,value,languageSession); } Map saxParserPropertiesOptional = getSAXParserPropertiesOptional(languageSession); @@ -98,7 +104,7 @@ public class X4OContentParser { String name = entry.getKey(); Object value= entry.getValue(); try { - saxParser.setProperty(name, value); + reader.setProperty(name, value); debugMessage("optional-property",name,value,languageSession); } catch (SAXException e) { debugMessageLog("Could not set optional SAX property: "+name+" to: "+value+" error: "+e.getMessage(),languageSession); @@ -109,14 +115,14 @@ public class X4OContentParser { Map features = getSAXParserFeatures(languageSession); for (String key:features.keySet()) { Boolean value=features.get(key); - saxParser.setFeature(key, value); + reader.setFeature(key, value); debugMessage("feature",key,value,languageSession); } Map featuresOptional = getSAXParserFeaturesOptional(languageSession); for (String key:featuresOptional.keySet()) { Boolean value=featuresOptional.get(key); try { - saxParser.setFeature(key, value); + reader.setFeature(key, value); debugMessage("optional-feature",key,value,languageSession); } catch (SAXException e) { debugMessageLog("Could not set optional SAX feature: "+key+" to: "+value+" error: "+e.getMessage(),languageSession); @@ -126,7 +132,7 @@ public class X4OContentParser { // check for required features List requiredFeatures = getSAXParserFeaturesRequired(languageSession); for (String requiredFeature:requiredFeatures) { - if (saxParser.getFeature(requiredFeature)==false) { + if (reader.getFeature(requiredFeature)==false) { throw new IllegalStateException("Missing required feature: "+requiredFeature); } debugMessage("required",requiredFeature,"true",languageSession); @@ -153,7 +159,7 @@ public class X4OContentParser { } try { - saxParser.parse(input); + reader.parse(input); } finally { if (inputStream!=null) { inputStream.close(); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java index 246f41d..728eb5e 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java @@ -176,7 +176,7 @@ public class X4ODebugWriter { StringBuilder buf = new StringBuilder(); buf.append("0x"); for (char c:newline.toCharArray()) { - Integer i = new Integer(c); + Integer i = Integer.valueOf(c); if (i<16) { buf.append('0'); } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java index 5e66951..6103267 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java @@ -48,30 +48,30 @@ import org.x4o.xml.lang.phase.X4OPhaseManager; */ public class DefaultX4OLanguage implements X4OLanguageLocal { - private Logger logger = null; - private X4OLanguageConfiguration languageConfiguration = null; - private List elementLanguageModules = null; - private String languageName = null; - private String languageVersion = null; - private X4OPhaseManager phaseManager = null; - private Map keyedNamespaceLookup = null; - - public DefaultX4OLanguage(X4OLanguageConfiguration languageConfiguration,X4OPhaseManager phaseManager,String languageName,String languageVersion) { - if (languageName==null) { + private final Logger logger; + private final X4OLanguageConfiguration languageConfiguration; + private final List elementLanguageModules; + private final String languageName; + private final String languageVersion; + private final X4OPhaseManager phaseManager; + private final Map keyedNamespaceLookup; + + public DefaultX4OLanguage(X4OLanguageConfiguration languageConfiguration, X4OPhaseManager phaseManager, String languageName, String languageVersion) { + if (languageName == null) { throw new NullPointerException("Can't define myself with null name."); } - if (languageVersion==null) { + if (languageVersion == null) { throw new NullPointerException("Can't define myself with null version."); } - logger = Logger.getLogger(DefaultX4OLanguage.class.getName()); - elementLanguageModules = new ArrayList(20); - keyedNamespaceLookup = new HashMap(20); - this.languageConfiguration=languageConfiguration; - this.languageName=languageName; - this.languageVersion=languageVersion; - this.phaseManager=phaseManager; + this.logger = Logger.getLogger(DefaultX4OLanguage.class.getName()); + this.elementLanguageModules = new ArrayList(20); + this.keyedNamespaceLookup = new HashMap(20); + this.languageConfiguration = languageConfiguration; + this.languageName = languageName; + this.languageVersion = languageVersion; + this.phaseManager = phaseManager; } - + /** * @see org.x4o.xml.lang.X4OLanguage#getLanguageName() */ @@ -85,7 +85,7 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { public String getLanguageVersion() { return languageVersion; } - + /** * @see org.x4o.xml.lang.X4OLanguage#getPhaseManager() */ @@ -104,28 +104,27 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { * @see org.x4o.xml.lang.X4OLanguageLocal#addLanguageModule(org.x4o.xml.lang.X4OLanguageModule) */ public void addLanguageModule(X4OLanguageModule elementLanguageModule) { - if (elementLanguageModule.getId()==null) { + if (elementLanguageModule.getId() == null) { throw new NullPointerException("Can't add module without id."); } - for (X4OLanguageModule mod:elementLanguageModules) { + for (X4OLanguageModule mod : elementLanguageModules) { if (mod.getId().equals(elementLanguageModule.getId())) { - throw new IllegalArgumentException("Can't add module with duplicate id; "+elementLanguageModule.getId()); + throw new IllegalArgumentException("Can't add module with duplicate id; " + elementLanguageModule.getId()); } } elementLanguageModules.add(elementLanguageModule); - - for (ElementNamespace ns:elementLanguageModule.getElementNamespaces()) { + for (ElementNamespace ns : elementLanguageModule.getElementNamespaces()) { keyedNamespaceLookup.put(ns.getUri(), ns); } } - + /** * @see org.x4o.xml.lang.X4OLanguage#getLanguageModules() */ public Collection getLanguageModules() { return elementLanguageModules; } - + /** * @see org.x4o.xml.lang.X4OLanguage#createLanguageSession() */ @@ -134,22 +133,25 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { return result; } - protected X4OLanguageSession buildElementLanguage(X4OLanguageSessionLocal languageSession) { + protected X4OLanguageSession buildElementLanguage(X4OLanguageSessionLocal languageSession) { try { - if (languageSession.getExpressionLanguageFactory()==null) { + if (languageSession.getExpressionLanguageFactory() == null) { languageSession.setExpressionLanguageFactory(X4OExpressionFactory.createExpressionFactory()); } - if (languageSession.getExpressionLanguageContext()==null) { - languageSession.setExpressionLanguageContext(X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext())); + if (languageSession.getExpressionLanguageContext() == null) { + languageSession.setExpressionLanguageContext( + X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext())); } - if (languageSession.getElementAttributeValueParser()==null) { - languageSession.setElementAttributeValueParser((ElementAttributeValueParser)X4OLanguageClassLoader.newInstance(getLanguageConfiguration().getDefaultElementAttributeValueParser())); + if (languageSession.getElementAttributeValueParser() == null) { + languageSession.setElementAttributeValueParser(X4OLanguageClassLoader.newInstance(ElementAttributeValueParser.class, + getLanguageConfiguration().getDefaultElementAttributeValueParser())); } - if (languageSession.getElementObjectPropertyValue()==null) { - languageSession.setElementObjectPropertyValue((ElementObjectPropertyValue)X4OLanguageClassLoader.newInstance(getLanguageConfiguration().getDefaultElementObjectPropertyValue())); + if (languageSession.getElementObjectPropertyValue() == null) { + languageSession.setElementObjectPropertyValue(X4OLanguageClassLoader.newInstance(ElementObjectPropertyValue.class, + getLanguageConfiguration().getDefaultElementObjectPropertyValue())); } - } catch (Exception e) { - throw new RuntimeException(e.getMessage(),e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e.getMessage(), e); } return languageSession; } @@ -157,21 +159,21 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { /** * @see org.x4o.xml.lang.X4OLanguage#createElementInstance(org.x4o.xml.lang.X4OLanguageSession,java.lang.Class) */ - public Element createElementInstance(X4OLanguageSession context,Class objectClass) { - for (X4OLanguageModule modContext:getLanguageModules()) { - for (ElementNamespace nsContext:modContext.getElementNamespaces()) { - for (ElementClass ec:nsContext.getElementClasses()) { - if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) { + public Element createElementInstance(X4OLanguageSession context, Class objectClass) { + for (X4OLanguageModule modContext : getLanguageModules()) { + for (ElementNamespace nsContext : modContext.getElementNamespaces()) { + for (ElementClass ec : nsContext.getElementClasses()) { + if (ec.getObjectClass() != null && ec.getObjectClass().equals(objectClass)) { try { return nsContext.getElementNamespaceInstanceProvider().createElementInstance(context, ec.getId()); } catch (ElementNamespaceInstanceProviderException e) { - throw new RuntimeException(e.getMessage(),e); // TODO: fix me + throw new RuntimeException(e.getMessage(), e); // TODO: fix me } } } } } - throw new IllegalArgumentException("Could not find ElementClass for: "+objectClass.getName()); + throw new IllegalArgumentException("Could not find ElementClass for: " + objectClass.getName()); } /** @@ -179,9 +181,9 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { */ public List findElementBindingHandlers(Object parent) { List result = new ArrayList(50); - for (int i=0;i findElementBindingHandlers(Object parent,Object child) { + public List findElementBindingHandlers(Object parent, Object child) { List result = new ArrayList(50); - for (int i=0;i result,List checkList,boolean checkChild) { - for (ElementBindingHandler binding:checkList) { + private void findElementBindingHandlerInList(Object parent, Object child, List result, List checkList, + boolean checkChild) { + for (ElementBindingHandler binding : checkList) { boolean parentBind = false; if (parent instanceof Class) { - parentBind = binding.getBindParentClass().isAssignableFrom((Class)parent); + parentBind = binding.getBindParentClass().isAssignableFrom((Class) parent); } else { parentBind = binding.getBindParentClass().isInstance(parent); } - if (parentBind==false) { + if (parentBind == false) { continue; } - if (checkChild==false) { + if (checkChild == false) { result.add(binding); // All all handlers for parent only continue; } boolean childBind = false; - for (Class childClass:binding.getBindChildClasses()) { - if (child instanceof Class && childClass.isAssignableFrom((Class)child)) { - childBind=true; - break; + for (Class childClass : binding.getBindChildClasses()) { + if (child instanceof Class && childClass.isAssignableFrom((Class) child)) { + childBind = true; + break; } else if (childClass.isInstance(child)) { - childBind=true; + childBind = true; break; } } @@ -228,25 +231,25 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { } } } - + /** * @see org.x4o.xml.lang.X4OLanguage#findElementInterfaces(java.lang.Object) */ public List findElementInterfaces(Object elementObject) { - if (elementObject==null) { + if (elementObject == null) { throw new NullPointerException("Can't search for null object."); } List result = new ArrayList(50); - for (int i=0;i eClass = ei.getInterfaceClass(); - logger.finest("Checking interface handler: "+ei+" for class: "+eClass); - if (elementObject instanceof Class && eClass.isAssignableFrom((Class)elementObject)) { - logger.finer("Found interface match from class; "+elementObject); + logger.finest("Checking interface handler: " + ei + " for class: " + eClass); + if (elementObject instanceof Class && eClass.isAssignableFrom((Class) elementObject)) { + logger.finer("Found interface match from class; " + elementObject); result.add(ei); } else if (eClass.isInstance(elementObject)) { - logger.finer("Found interface match from object; "+elementObject); + logger.finer("Found interface match from object; " + elementObject); result.add(ei); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java index 5891361..dcc1334 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java @@ -31,6 +31,10 @@ import java.util.Enumeration; import java.util.List; import java.util.logging.Logger; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + import org.x4o.xml.eld.EldDriver; import org.x4o.xml.eld.EldModuleLoader; import org.x4o.xml.lang.phase.X4OPhaseLanguageInit; @@ -40,7 +44,6 @@ import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.ext.DefaultHandler2; -import org.xml.sax.helpers.XMLReaderFactory; /** * DefaultX4OLanguageLoader loads the modules of language. @@ -101,7 +104,7 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { } for (String value:versionedResources.moduleLoaders) { try { - loader = (X4OLanguageModuleLoader)X4OLanguageClassLoader.loadClass(value).newInstance(); + loader = (X4OLanguageModuleLoader)X4OLanguageClassLoader.newInstance(value); } catch (Exception ee) { throw new X4OLanguageLoaderException("Could not load class: "+value+" error: "+ee.getMessage(),ee); } @@ -109,7 +112,7 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { } for (String value:versionedResources.siblingLoaders) { try { - loader = (X4OLanguageModuleLoader)X4OLanguageClassLoader.loadClass(value).newInstance(); + loader = (X4OLanguageModuleLoader)X4OLanguageClassLoader.newInstance(value); } catch (Exception ee) { throw new X4OLanguageLoaderException("Could not load class: "+value+" error: "+ee.getMessage(),ee); } @@ -135,10 +138,8 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { List result = new ArrayList(resources.size()); X4OLanguageVersionFilter lvf; try { - lvf = (X4OLanguageVersionFilter)X4OLanguageClassLoader.newInstance(languageLocal.getLanguageConfiguration().getDefaultLanguageVersionFilter()); - } catch (InstantiationException e) { - throw new X4OLanguageLoaderException(e); - } catch (IllegalAccessException e) { + lvf = X4OLanguageClassLoader.newInstance(X4OLanguageVersionFilter.class, languageLocal.getLanguageConfiguration().getDefaultLanguageVersionFilter()); + } catch (ClassNotFoundException e) { throw new X4OLanguageLoaderException(e); } for (VersionedResources versionedResources:resources) { @@ -178,10 +179,8 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { private void loadModule(X4OLanguageLocal languageLocal,X4OLanguageModuleLoader loader,String resource,VersionedResources versionedResources) throws X4OLanguageLoaderException { X4OLanguageModuleLocal module; try { - module = (X4OLanguageModuleLocal)X4OLanguageClassLoader.newInstance(languageLocal.getLanguageConfiguration().getDefaultElementLanguageModule()); - } catch (InstantiationException e) { - throw new X4OLanguageLoaderException(e); - } catch (IllegalAccessException e) { + module = X4OLanguageClassLoader.newInstance(X4OLanguageModuleLocal.class, languageLocal.getLanguageConfiguration().getDefaultElementLanguageModule()); + } catch (ClassNotFoundException e) { throw new X4OLanguageLoaderException(e); } logMessage(languageLocal,"Created module: "+module); @@ -236,9 +235,7 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { result.addAll(loadLanguageModulesXml(u.openStream(),u.toString())); } return result; - } catch (IOException e) { - throw new X4OLanguageLoaderException(e); - } catch (SAXException e) { + } catch (IOException | SAXException | ParserConfigurationException e) { throw new X4OLanguageLoaderException(e); } } @@ -248,18 +245,22 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { * @param in The inputstream to parser. * @throws IOException * @throws SAXException + * @throws ParserConfigurationException */ - protected List loadLanguageModulesXml(InputStream in,String loadedFrom) throws IOException, SAXException { + protected List loadLanguageModulesXml(InputStream in,String loadedFrom) throws IOException, SAXException, ParserConfigurationException { if (in==null) { throw new NullPointerException("Can't parse null input stream"); } ModulesTagHandler xth = new ModulesTagHandler(loadedFrom); - XMLReader saxParser = XMLReaderFactory.createXMLReader(); - saxParser.setContentHandler(xth); - saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", xth); - saxParser.setProperty("http://xml.org/sax/properties/declaration-handler",xth); + SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setNamespaceAware(true); + SAXParser parser = factory.newSAXParser(); + XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(xth); + reader.setProperty("http://xml.org/sax/properties/lexical-handler", xth); + reader.setProperty("http://xml.org/sax/properties/declaration-handler",xth); try { - saxParser.parse(new InputSource(in)); + reader.parse(new InputSource(in)); return xth.getResult(); } finally { in.close(); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageClassLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageClassLoader.java index 55fabf2..0c6351c 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageClassLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageClassLoader.java @@ -23,6 +23,7 @@ package org.x4o.xml.lang; import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; import java.net.URL; /** @@ -62,27 +63,40 @@ public final class X4OLanguageClassLoader { public static Class loadClass(String className) throws ClassNotFoundException { return getClassLoader().loadClass(className); } - + + /** + * Creates new instance of clazz. + * @param resultType The result type to cast to.. + * @param clazz The class to make object from. + * @return The object of the clazz. + * @throws ClassNotFoundException On any construct access or invoke error. + */ + @SuppressWarnings("unchecked") + public static T newInstance(Class resultType, Class clazz) throws ClassNotFoundException { + return (T) newInstance(clazz); + } + /** * Creates new instance of clazz. * @param clazz The class to make object from. * @return The object of the clazz. - * @throws InstantiationException When className has no default constructor. - * @throws IllegalAccessException When class loading has security error. + * @throws ClassNotFoundException On any construct access or invoke error. */ - public static Object newInstance(Class clazz) throws InstantiationException, IllegalAccessException { - return clazz.newInstance(); + public static Object newInstance(Class clazz) throws ClassNotFoundException { + try { + return clazz.getConstructor().newInstance(); + } catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException e) { + throw new ClassNotFoundException(e.getMessage(), e); + } } /** * Creates new instance of className. * @param className The className to create object from. * @return The object of the className. - * @throws ClassNotFoundException When className is not found. - * @throws InstantiationException When className has no default constructor. - * @throws IllegalAccessException When class loading has security error. + * @throws ClassNotFoundException When className is not found or can't be created. */ - public static Object newInstance(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + public static Object newInstance(String className) throws ClassNotFoundException { return newInstance(loadClass(className)); } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java index c279734..ecfb6e7 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java @@ -103,7 +103,7 @@ public class X4OPhaseLanguageInit { public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { try { //debugPhaseMessage("Loading main language: "+elementLanguage.getLanguage(),this,elementLanguage); - X4OLanguageLoader loader = (X4OLanguageLoader)X4OLanguageClassLoader.newInstance(languageSession.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader()); + X4OLanguageLoader loader = X4OLanguageClassLoader.newInstance(X4OLanguageLoader.class, languageSession.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader()); loader.loadLanguage((X4OLanguageLocal)languageSession.getLanguage(),languageSession.getLanguage().getLanguageName(),languageSession.getLanguage().getLanguageVersion()); if (languageSession.hasX4ODebugWriter()) { @@ -141,7 +141,7 @@ public class X4OPhaseLanguageInit { public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { try { if (siblingLoaders.isEmpty()==false) { - X4OLanguageLoader loader = (X4OLanguageLoader)X4OLanguageClassLoader.newInstance(languageSession.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader()); + X4OLanguageLoader loader = X4OLanguageClassLoader.newInstance(X4OLanguageLoader.class, languageSession.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader()); for (X4OLanguageModuleLoaderSibling siblingLoader:siblingLoaders) { //debugPhaseMessage("Loading sibling langauge loader: "+siblingLoader,this,elementLanguage); siblingLoader.loadLanguageSibling((X4OLanguageLocal)languageSession.getLanguage(), loader); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java index 70907f0..edcb7e4 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java @@ -277,7 +277,7 @@ public class X4OPhaseLanguageRead { if (elementNamespaceAttributeComparator==null) { try { elementNamespaceAttributeComparator = (Comparator)X4OLanguageClassLoader.newInstance(element.getLanguageSession().getLanguage().getLanguageConfiguration().getDefaultElementNamespaceAttributeComparator()); - } catch (Exception e) { + } catch (ClassNotFoundException e) { throw new X4OPhaseException(this,e); } } From 2819b36a459c9982757298eaafad338b74a82829 Mon Sep 17 00:00:00 2001 From: Willem Date: Fri, 7 Nov 2025 20:13:30 +0100 Subject: [PATCH 9/9] X4O: Fixed recursief debugging xml output --- .../src/main/java/org/x4o/xml/X4ODriver.java | 16 -- .../java/org/x4o/xml/X4ODriverManager.java | 7 - .../java/org/x4o/xml/eld/EldModuleLoader.java | 23 +- .../org/x4o/xml/eld/EldModuleLoaderCore.java | 210 +++++++++--------- .../xml/io/AbstractX4OConnectionDebug.java | 83 +++---- .../org/x4o/xml/io/AbstractX4OReader.java | 82 +++---- .../x4o/xml/io/AbstractX4OReaderSession.java | 58 ++--- .../org/x4o/xml/io/AbstractX4OWriter.java | 18 +- .../x4o/xml/io/AbstractX4OWriterSession.java | 18 +- .../java/org/x4o/xml/io/DefaultX4OReader.java | 33 +-- .../java/org/x4o/xml/io/DefaultX4OWriter.java | 23 +- .../java/org/x4o/xml/io/X4ODebugWriter.java | 29 ++- .../xml/lang/AbstractX4OLanguageSession.java | 25 ++- .../org/x4o/xml/lang/DefaultX4OLanguage.java | 21 +- .../xml/lang/DefaultX4OLanguageLoader.java | 128 ++++++----- .../xml/lang/DefaultX4OLanguageSession.java | 2 +- .../org/x4o/xml/lang/X4OLanguageLoader.java | 5 +- .../org/x4o/xml/lang/X4OLanguageLocal.java | 8 +- .../x4o/xml/lang/X4OLanguageModuleLoader.java | 7 +- .../lang/X4OLanguageModuleLoaderSibling.java | 7 +- .../x4o/xml/lang/X4OLanguageSessionLocal.java | 13 +- .../lang/meta/MetaLanguageSiblingLoader.java | 33 +-- .../x4o/xml/lang/phase/AbstractX4OPhase.java | 44 ++-- .../lang/phase/DefaultX4OPhaseManager.java | 59 ++--- .../java/org/x4o/xml/lang/phase/X4OPhase.java | 21 -- .../xml/lang/phase/X4OPhaseLanguageInit.java | 16 +- .../xml/lang/phase/X4OPhaseLanguageRead.java | 46 ++-- .../xml/lang/task/run/X4OTaskCommandLine.java | 6 +- .../x4o/xml/lang/task/run/X4OTaskRunner.java | 31 ++- .../org/x4o/xml/X4ODriverManagerTest.java | 13 +- .../org/x4o/xml/core/X4ODebugWriterTest.java | 24 +- .../x4o/xml/core/X4OEntityResolverTest.java | 13 +- .../doc/X4OWriteLanguageDocExecutorTest.java | 3 +- .../xml/eld/xsd/EldXsdLanguageTaskTest.java | 3 +- .../lang/DefaultX4OLanguageLoaderTest.java | 9 +- .../sax3/io/AbstractContentWriterHandler.java | 7 +- .../java/org/x4o/sax3/io/ContentWriter.java | 18 ++ 37 files changed, 592 insertions(+), 570 deletions(-) diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriver.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriver.java index f951d4f..8357269 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriver.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriver.java @@ -148,22 +148,6 @@ public abstract class X4ODriver { return buildLanguage(getLanguageVersionDefault()); } - /* - * Creates the X4OLanguageSession for the default language version. - * @return The created X4OLanguageSession. - * - final public X4OLanguageSession createLanguageSession() { - return createLanguageSession(getLanguageVersionDefault()); - } - - * - * Creates the X4OLanguageSession for the specified version. - * @param version The language version to create the context for. - * @return The created X4OLanguageSession. - * - final public X4OLanguageSession createLanguageSession(String version) { - return createLanguage(version).createLanguageSession(); - }*/ // =============== Language Tasks diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java index 999c5c6..e93ed12 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/X4ODriverManager.java @@ -43,12 +43,10 @@ import org.x4o.xml.lang.X4OLanguage; import org.x4o.xml.lang.X4OLanguageClassLoader; import org.x4o.xml.lang.X4OLanguageConfiguration; import org.x4o.xml.lang.phase.DefaultX4OPhaseManager; -import org.x4o.xml.lang.phase.X4OPhaseException; import org.x4o.xml.lang.phase.X4OPhaseLanguageInit; import org.x4o.xml.lang.phase.X4OPhaseLanguageRead; import org.x4o.xml.lang.phase.X4OPhaseLanguageWrite; import org.x4o.xml.lang.phase.X4OPhaseManager; -import org.x4o.xml.lang.phase.X4OPhaseType; import org.x4o.xml.lang.task.X4OLanguageTask; import org.xml.sax.Attributes; import org.xml.sax.InputSource; @@ -128,11 +126,6 @@ public final class X4ODriverManager { version = driver.getLanguageVersionDefault(); } DefaultX4OLanguage result = new DefaultX4OLanguage(driver.buildLanguageConfiguration(), driver.buildPhaseManager(), driver.getLanguageName(), version); - try { - result.getPhaseManager().runPhases(result.createLanguageSession(), X4OPhaseType.INIT); // TODO: fix phase to interface T - } catch (X4OPhaseException e) { - throw new RuntimeException(e); // TODO: change layer - } return result; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java index e02e45d..7656783 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoader.java @@ -75,12 +75,13 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { /** * Loads the ELD language into the module. - * @param language The langauge to load for. - * @param languageModule The module to load it in. + * @param session The session we run in. + * @param language The local Language to load for. + * @param module The language module to load it into. * @throws X4OLanguageModuleLoaderException When eld language could not be loaded. * @see org.x4o.xml.lang.X4OLanguageModuleLoader#loadLanguageModule(org.x4o.xml.lang.X4OLanguageLocal, org.x4o.xml.lang.X4OLanguageModuleLocal) */ - public void loadLanguageModule(X4OLanguageLocal language, X4OLanguageModuleLocal languageModule) throws X4OLanguageModuleLoaderException { + public void loadLanguageModule(X4OLanguageSession session, X4OLanguageLocal language, X4OLanguageModuleLocal module) throws X4OLanguageModuleLoaderException { logger.fine("Loading name eld file from resource: " + eldResource); try { X4ODriver driver = null; @@ -90,19 +91,11 @@ public class EldModuleLoader implements X4OLanguageModuleLoader { driver = X4ODriverManager.getX4ODriver(EldDriver.LANGUAGE_NAME); } X4OReader reader = driver.createReader(); - - //X4OLanguageSession eldLang = driver.createLanguageSession(driver.getLanguageVersionDefault()); - //X4OReader reader = new DefaultX4OReader(eldLang); - reader.addELBeanInstance(EL_PARENT_LANGUAGE, language); - reader.addELBeanInstance(EL_PARENT_LANGUAGE_MODULE, languageModule); - - reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_HANDLER, null); - -//TODO: if (language.getLanguageConfiguration().getLanguagePropertyBoolean(X4OLanguageProperty.DEBUG_OUTPUT_ELD_PARSER)) { -// eldLang.setX4ODebugWriter(elementLanguage.getLanguageConfiguration().getX4ODebugWriter()); -// } - + reader.addELBeanInstance(EL_PARENT_LANGUAGE_MODULE, module); + if (session.hasX4ODebugWriter()) { + reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_HANDLER, session.getX4ODebugWriter().getContentWriter()); + } reader.readResource(eldResource); } catch (X4OConnectionException e) { throw new X4OLanguageModuleLoaderException(this,e.getMessage()+" while parsing: "+eldResource,e); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java index ccca958..b54488f 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/eld/EldModuleLoaderCore.java @@ -48,9 +48,11 @@ import org.x4o.xml.lang.X4OLanguageClassLoader; import org.x4o.xml.lang.X4OLanguageModuleLoader; import org.x4o.xml.lang.X4OLanguageModuleLoaderException; import org.x4o.xml.lang.X4OLanguageModuleLocal; +import org.x4o.xml.lang.X4OLanguageSession; -/** - * EldModuleLoaderCore provides a few basic elements for the core eld x4o language. +/** + * EldModuleLoaderCore provides a few basic elements for the core eld x4o + * language. * * @author Willem Cazander * @version 1.0 Jan 11, 2009 @@ -59,117 +61,122 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { private Logger logger = null; private static final String PP_CEL_PROVIDER_HOST = "cel.x4o.org"; - private static final String PP_CEL_XMLNS = "http://"+PP_CEL_PROVIDER_HOST+"/xml/ns/"; + private static final String PP_CEL_XMLNS = "http://" + PP_CEL_PROVIDER_HOST + "/xml/ns/"; private static final String PP_CEL_XSD_FILE = "-1.0.xsd"; private static final String CEL_CORE = "cel-core"; private static final String CEL_ROOT = "cel-root"; - private static final String CEL_CORE_XSD_FILE = CEL_CORE+PP_CEL_XSD_FILE; - private static final String CEL_ROOT_XSD_FILE = CEL_ROOT+PP_CEL_XSD_FILE; + private static final String CEL_CORE_XSD_FILE = CEL_CORE + PP_CEL_XSD_FILE; + private static final String CEL_ROOT_XSD_FILE = CEL_ROOT + PP_CEL_XSD_FILE; /** The cel core namespace uri. */ - public static final String CEL_CORE_URI = PP_CEL_XMLNS+CEL_CORE; + public static final String CEL_CORE_URI = PP_CEL_XMLNS + CEL_CORE; /** The cel root namespace uri. */ - public static final String CEL_ROOT_URI = PP_CEL_XMLNS+CEL_ROOT; + public static final String CEL_ROOT_URI = PP_CEL_XMLNS + CEL_ROOT; /** The cel core schema namespace uri. */ - public static final String CEL_CORE_XSD_URI = CEL_CORE_URI+PP_CEL_XSD_FILE; + public static final String CEL_CORE_XSD_URI = CEL_CORE_URI + PP_CEL_XSD_FILE; /** The cel root schema namespace uri. */ - public static final String CEL_ROOT_XSD_URI = CEL_ROOT_URI+PP_CEL_XSD_FILE; - + public static final String CEL_ROOT_XSD_URI = CEL_ROOT_URI + PP_CEL_XSD_FILE; + /** * Creates the CEL module loader. */ public EldModuleLoaderCore() { logger = Logger.getLogger(EldModuleLoaderCore.class.getName()); } - + /** * Loads the CEL language into the module. - * @param language The langauge to load for. + * + * @param session The session to run in. + * @param language The langauge to load for. * @param languageModule The module to load it in. - * @see org.x4o.xml.lang.X4OLanguageModuleLoader#loadLanguageModule(org.x4o.xml.lang.X4OLanguageLocal, org.x4o.xml.lang.X4OLanguageModuleLocald) + * @see org.x4o.xml.lang.X4OLanguageModuleLoader#loadLanguageModule(org.x4o.xml.lang.X4OLanguageLocal, + * org.x4o.xml.lang.X4OLanguageModuleLocald) */ - public void loadLanguageModule(X4OLanguageLocal language,X4OLanguageModuleLocal languageModule) throws X4OLanguageModuleLoaderException { - + @Override + public void loadLanguageModule(X4OLanguageSession session, X4OLanguageLocal language, X4OLanguageModuleLocal languageModule) throws X4OLanguageModuleLoaderException { + // Config module meta data configLanguageModule(languageModule); - + // Config language - addBindingHandler(languageModule,new ElementClassBindingHandler(),"cel-class-bind","Binds the ElementClass childeren."); - addBindingHandler(languageModule,new ElementModuleBindingHandler(),"cel-module-bind","Binds the LanguageModule childeren."); - addBindingHandler(languageModule,new ElementClassAttributeBindingHandler(),"cel-class-attr-bind","Binds the ElementClassAttribute childeren."); - addBindingHandler(languageModule,new ElementInterfaceBindingHandler(),"cel-interface-bind","Binds the ElementInterface childeren."); - addBindingHandler(languageModule,new ElementNamespaceBindingHandler(),"cel-namespace-bind","Binds the Namespace childeren."); - + addBindingHandler(languageModule, new ElementClassBindingHandler(), "cel-class-bind", "Binds the ElementClass childeren."); + addBindingHandler(languageModule, new ElementModuleBindingHandler(), "cel-module-bind", "Binds the LanguageModule childeren."); + addBindingHandler(languageModule, new ElementClassAttributeBindingHandler(), "cel-class-attr-bind", "Binds the ElementClassAttribute childeren."); + addBindingHandler(languageModule, new ElementInterfaceBindingHandler(), "cel-interface-bind", "Binds the ElementInterface childeren."); + addBindingHandler(languageModule, new ElementNamespaceBindingHandler(), "cel-namespace-bind", "Binds the Namespace childeren."); + // Create cel-lang namespace in language - ElementNamespace namespace = createNamespaceContext(language,CEL_CORE,CEL_CORE_URI,CEL_CORE_XSD_URI,CEL_CORE_XSD_FILE,CEL_CORE); - configElementClasses(language,namespace); - startAndAddNamespace(language,languageModule,namespace); + ElementNamespace namespace = createNamespaceContext(language, CEL_CORE, CEL_CORE_URI, CEL_CORE_XSD_URI, CEL_CORE_XSD_FILE, CEL_CORE); + configElementClasses(language, namespace); + startAndAddNamespace(language, languageModule, namespace); // Create cel-root namespace in language for schema support - ElementNamespace namespaceRoot = createNamespaceContext(language,CEL_ROOT,CEL_ROOT_URI,CEL_ROOT_XSD_URI,CEL_ROOT_XSD_FILE,CEL_ROOT); + ElementNamespace namespaceRoot = createNamespaceContext(language, CEL_ROOT, CEL_ROOT_URI, CEL_ROOT_XSD_URI, CEL_ROOT_XSD_FILE, CEL_ROOT); namespaceRoot.setLanguageRoot(true); // Only define single language root so xsd is (mostly) not cicle import. - ElementClass rootElement = createElementClass(language,"module",language.getLanguageConfiguration().getDefaultElementLanguageModule(),ModuleElement.class,"The module tag is the root xml element for ELD language."); - rootElement.addElementClassAttribute(createElementClassAttribute(language,"id",true,null)); - rootElement.addElementClassAttribute(createElementClassAttribute(language,"providerHost",true,null)); + ElementClass rootElement = createElementClass(language, "module", language.getLanguageConfiguration().getDefaultElementLanguageModule(), ModuleElement.class, "The module tag is the root xml element for ELD language."); + rootElement.addElementClassAttribute(createElementClassAttribute(language, "id", true, null)); + rootElement.addElementClassAttribute(createElementClassAttribute(language, "providerHost", true, null)); namespaceRoot.addElementClass(rootElement); - startAndAddNamespace(language,languageModule,namespaceRoot); + startAndAddNamespace(language, languageModule, namespaceRoot); } - + /** * Adds only Element class beans which need extra meta info for schema. + * * @param namespace The namespace to config. - * @param language The language to config for. - * @throws X4OLanguageModuleLoaderException + * @param language The language to config for. + * @throws X4OLanguageModuleLoaderException */ - private void configElementClasses(X4OLanguage language,ElementNamespace namespace) throws X4OLanguageModuleLoaderException { + private void configElementClasses(X4OLanguage language, ElementNamespace namespace) throws X4OLanguageModuleLoaderException { ElementClass ec = null; - - namespace.addElementClass(createElementClass(language,"attribute",language.getLanguageConfiguration().getDefaultElementClassAttribute(),null,"Defines xml element attribute.")); - - ec = createElementClass(language,"attributeAlias",null,AttributeAliasElement.class,"Adds an attribute alias."); - ec.addElementClassAttribute(createElementClassAttribute(language,"name",true,null)); + + namespace.addElementClass(createElementClass(language, "attribute", language.getLanguageConfiguration().getDefaultElementClassAttribute(), null, "Defines xml element attribute.")); + + ec = createElementClass(language, "attributeAlias", null, AttributeAliasElement.class, "Adds an attribute alias."); + ec.addElementClassAttribute(createElementClassAttribute(language, "name", true, null)); ec.addElementParent(CEL_CORE_URI, "attribute"); namespace.addElementClass(ec); - - namespace.addElementClass(createElementClass(language,"classConverter",ClassConverter.class,null,"Converts string attribute to java class instance.")); - - ec = createElementClass(language,"namespace",language.getLanguageConfiguration().getDefaultElementNamespace(),null,"Defines an xml namespace."); - ec.addElementClassAttribute(createElementClassAttribute(language,"uri",true,null)); + + namespace.addElementClass(createElementClass(language, "classConverter", ClassConverter.class, null, "Converts string attribute to java class instance.")); + + ec = createElementClass(language, "namespace", language.getLanguageConfiguration().getDefaultElementNamespace(), null, "Defines an xml namespace."); + ec.addElementClassAttribute(createElementClassAttribute(language, "uri", true, null)); namespace.addElementClass(ec); - - ec = createElementClass(language,"element",language.getLanguageConfiguration().getDefaultElementClass(),null,"Defines xml element tag."); - ec.addElementClassAttribute(createElementClassAttribute(language,"objectClass",false,new ClassConverter())); - ec.addElementClassAttribute(createElementClassAttribute(language,"elementClass",false,new ClassConverter())); + + ec = createElementClass(language, "element", language.getLanguageConfiguration().getDefaultElementClass(), null, "Defines xml element tag."); + ec.addElementClassAttribute(createElementClassAttribute(language, "objectClass", false, new ClassConverter())); + ec.addElementClassAttribute(createElementClassAttribute(language, "elementClass", false, new ClassConverter())); namespace.addElementClass(ec); - - ec = createElementClass(language,"elementInterface",language.getLanguageConfiguration().getDefaultElementInterface(),null,"Defines element interface class."); - ec.addElementClassAttribute(createElementClassAttribute(language,"interfaceClass",false,new ClassConverter())); + + ec = createElementClass(language, "elementInterface", language.getLanguageConfiguration().getDefaultElementInterface(), null, "Defines element interface class."); + ec.addElementClassAttribute(createElementClassAttribute(language, "interfaceClass", false, new ClassConverter())); namespace.addElementClass(ec); - - ec = createElementClass(language,"bindingHandler",null,BeanElement.class,"Defines generic binding handler for languge."); + + ec = createElementClass(language, "bindingHandler", null, BeanElement.class, "Defines generic binding handler for languge."); ec.addElementParent(CEL_ROOT_URI, "module"); - ec.addElementClassAttribute(createElementClassAttribute(language,"id",true,null)); - ec.addElementClassAttribute(createElementClassAttribute(language,"bean.class",true,null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "id", true, null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "bean.class", true, null)); namespace.addElementClass(ec); - - ec = createElementClass(language,"namespaceAttribute",null,BeanElement.class,"Defines generic namespace attribute for language."); + + ec = createElementClass(language, "namespaceAttribute", null, BeanElement.class, "Defines generic namespace attribute for language."); ec.addElementParent(CEL_CORE_URI, "namespace"); - ec.addElementClassAttribute(createElementClassAttribute(language,"bean.class",true,null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "bean.class", true, null)); namespace.addElementClass(ec); - - ec = createElementClass(language,"configurator",null,BeanElement.class,"Define generic configurator for language."); + + ec = createElementClass(language, "configurator", null, BeanElement.class, "Define generic configurator for language."); ec.addElementParent(CEL_CORE_URI, "elementInterface"); ec.addElementParent(CEL_CORE_URI, "element"); - ec.addElementClassAttribute(createElementClassAttribute(language,"bean.class",true,null)); - ec.addElementClassAttribute(createElementClassAttribute(language,"configAction",false,null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "bean.class", true, null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "configAction", false, null)); namespace.addElementClass(ec); - - ec = createElementClass(language,"configuratorGlobal",null,BeanElement.class,"Define generic global configuator for languge."); + + ec = createElementClass(language, "configuratorGlobal", null, BeanElement.class, "Define generic global configuator for languge."); ec.addElementParent(CEL_ROOT_URI, "module"); - ec.addElementClassAttribute(createElementClassAttribute(language,"bean.class",true,null)); - ec.addElementClassAttribute(createElementClassAttribute(language,"configAction",false,null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "bean.class", true, null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "configAction", false, null)); namespace.addElementClass(ec); - - ec = createElementClass(language,"description",null,DescriptionElement.class,"Adds description as text on all eld elements."); + + ec = createElementClass(language, "description", null, DescriptionElement.class, "Adds description as text on all eld elements."); ec.setSchemaContentBase("string"); ec.addElementParent(CEL_ROOT_URI, "module"); ec.addElementParent(CEL_CORE_URI, "namespace"); @@ -181,47 +188,44 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { ec.addElementParent(CEL_CORE_URI, "element"); ec.addElementParent(CEL_CORE_URI, "attribute"); namespace.addElementClass(ec); - - ec = createElementClass(language,"elementParent",null,ElementClassAddParentElement.class,"Added (meta) element parent."); + + ec = createElementClass(language, "elementParent", null, ElementClassAddParentElement.class, "Added (meta) element parent."); ec.addElementParent(CEL_CORE_URI, "element"); ec.addElementParent(CEL_CORE_URI, "elementInterface"); - ec.addElementClassAttribute(createElementClassAttribute(language,"tag",true,null)); - ec.addElementClassAttribute(createElementClassAttribute(language,"uri",false,null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "tag", true, null)); + ec.addElementClassAttribute(createElementClassAttribute(language, "uri", false, null)); namespace.addElementClass(ec); } - + private void configLanguageModule(X4OLanguageModuleLocal languageModule) { languageModule.setId("cel-module"); languageModule.setProviderName("Core Element Languag Module"); languageModule.setProviderHost(PP_CEL_PROVIDER_HOST); languageModule.setDescription("Core Element Language Module Loader"); } - - private void startAndAddNamespace(X4OLanguageLocal language,X4OLanguageModuleLocal languageModule,ElementNamespace namespace) throws X4OLanguageModuleLoaderException { + + private void startAndAddNamespace(X4OLanguageLocal language, X4OLanguageModuleLocal languageModule, ElementNamespace namespace) throws X4OLanguageModuleLoaderException { try { namespace.getElementNamespaceInstanceProvider().start(language, namespace); } catch (ElementNamespaceInstanceProviderException e) { - throw new X4OLanguageModuleLoaderException(this,"Error starting instance provider: "+e.getMessage(),e); + throw new X4OLanguageModuleLoaderException(this, "Error starting instance provider: " + e.getMessage(), e); } languageModule.addElementNamespace(namespace); } - - private ElementNamespace createNamespaceContext(X4OLanguageLocal language,String id,String uri,String schemaUri,String schemaResource,String schemaPrefix) throws X4OLanguageModuleLoaderException { - logger.finer("Creating "+language.getLanguageName()+" namespace."); + + private ElementNamespace createNamespaceContext(X4OLanguageLocal language, String id, String uri, String schemaUri, String schemaResource, String schemaPrefix) throws X4OLanguageModuleLoaderException { + logger.finer("Creating " + language.getLanguageName() + " namespace."); ElementNamespace namespace; try { namespace = X4OLanguageClassLoader.newInstance(ElementNamespace.class, language.getLanguageConfiguration().getDefaultElementNamespace()); } catch (ClassNotFoundException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); + throw new X4OLanguageModuleLoaderException(this, e.getMessage(), e); } try { - namespace.setElementNamespaceInstanceProvider( - X4OLanguageClassLoader.newInstance(ElementNamespaceInstanceProvider.class, language.getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider()) - ); + namespace.setElementNamespaceInstanceProvider(X4OLanguageClassLoader.newInstance(ElementNamespaceInstanceProvider.class, language.getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider())); } catch (ClassNotFoundException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); + throw new X4OLanguageModuleLoaderException(this, e.getMessage(), e); } - namespace.setId(id); namespace.setUri(uri); namespace.setSchemaUri(schemaUri); @@ -229,8 +233,8 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { namespace.setSchemaPrefix(schemaPrefix); return namespace; } - - private ElementClass createElementClass(X4OLanguage language,String tag,Class objectClass,Class elementClass,String description) throws X4OLanguageModuleLoaderException { + + private ElementClass createElementClass(X4OLanguage language, String tag, Class objectClass, Class elementClass, String description) throws X4OLanguageModuleLoaderException { try { ElementClass result = X4OLanguageClassLoader.newInstance(ElementClass.class, language.getLanguageConfiguration().getDefaultElementClass()); result.setId(tag); @@ -239,43 +243,45 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader { result.setDescription(description); return result; } catch (ClassNotFoundException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); + throw new X4OLanguageModuleLoaderException(this, e.getMessage(), e); } } - + /** * Creates new configed ElementClassAttribute instance. - * @param language The X4OLanguage to create from. - * @param name The name of the attribute. - * @param required Is the attribute required. + * + * @param language The X4OLanguage to create from. + * @param name The name of the attribute. + * @param required Is the attribute required. * @param converter The converter for the attribute. - * @return The new ElementClassAttribute instance. - * @throws X4OLanguageModuleLoaderException When class could not be created. + * @return The new ElementClassAttribute instance. + * @throws X4OLanguageModuleLoaderException When class could not be created. */ - private ElementClassAttribute createElementClassAttribute(X4OLanguage language,String name,boolean required,ObjectConverter converter) throws X4OLanguageModuleLoaderException { + private ElementClassAttribute createElementClassAttribute(X4OLanguage language, String name, boolean required, ObjectConverter converter) throws X4OLanguageModuleLoaderException { try { ElementClassAttribute result = X4OLanguageClassLoader.newInstance(ElementClassAttribute.class, language.getLanguageConfiguration().getDefaultElementClassAttribute()); result.setId(name); if (required) { result.setRequired(required); } - if (converter!=null) { + if (converter != null) { result.setObjectConverter(converter); } return result; } catch (ClassNotFoundException e) { - throw new X4OLanguageModuleLoaderException(this,e.getMessage(),e); + throw new X4OLanguageModuleLoaderException(this, e.getMessage(), e); } } - + /** * Adds binding handler to module. + * * @param languageModule The language module. - * @param handler The handler to add the the module. - * @param id The handler id. - * @param description The handler descripion. + * @param handler The handler to add the the module. + * @param id The handler id. + * @param description The handler descripion. */ - private void addBindingHandler(X4OLanguageModuleLocal languageModule,ElementBindingHandler handler,String id,String description) { + private void addBindingHandler(X4OLanguageModuleLocal languageModule, ElementBindingHandler handler, String id, String description) { handler.setId(id); handler.setDescription(description); languageModule.addElementBindingHandler(handler); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnectionDebug.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnectionDebug.java index f10c784..9089315 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnectionDebug.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OConnectionDebug.java @@ -27,6 +27,7 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.io.UnsupportedEncodingException; +import java.util.List; import org.x4o.sax3.SAX3WriterXml; import org.x4o.sax3.io.ContentWriter; @@ -36,6 +37,7 @@ import org.x4o.xml.lang.phase.X4OPhase; import org.x4o.xml.lang.phase.X4OPhaseException; import org.x4o.xml.lang.phase.X4OPhaseLanguageRead; import org.x4o.xml.lang.phase.X4OPhaseLanguageWrite; +import org.x4o.xml.lang.phase.X4OPhaseListener; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; @@ -46,59 +48,52 @@ import org.xml.sax.helpers.AttributesImpl; * @version 1.0 Mar 14, 2014 */ public abstract class AbstractX4OConnectionDebug implements X4OConnection { - + private boolean debugStarted = false; - private boolean debugAutoCloseOutputStream = true; - private OutputStream debugCloseOutputStream = null; - protected final static String ABSTRACT_DEBUG_OUTPUT_HANDLER = "debug/output-handler"; - protected final static String ABSTRACT_DEBUG_OUTPUT_STREAM = "debug/output-stream"; - protected final static String ABSTRACT_DEBUG_OUTPUT_STREAM_CLOSE = "debug/output-stream-close"; - - protected void debugStart(X4OLanguageSession languageSession,String debugHandlerKey,String debugStreamKey,String debugStreamCloseKey) throws UnsupportedEncodingException, SAXException { - debugAutoCloseOutputStream = (Boolean)getProperty(debugStreamCloseKey); + protected final static String ABSTRACT_DEBUG_OUTPUT_HANDLER = "debug/output-handler"; + protected final static String ABSTRACT_DEBUG_OUTPUT_STREAM = "debug/output-stream"; + + protected void debugStart(X4OLanguageSession languageSession, String debugHandlerKey, String debugStreamKey) throws UnsupportedEncodingException, SAXException { Object debugOutputHandler = getProperty(debugHandlerKey); Object debugOutputStream = getProperty(debugStreamKey); - if (languageSession.getX4ODebugWriter()==null) { + // init debug infra + if (languageSession.getX4ODebugWriter() == null) { ContentWriter xmlDebugWriter = null; if (debugOutputHandler instanceof ContentWriter) { - xmlDebugWriter = (ContentWriter)debugOutputHandler; + xmlDebugWriter = (ContentWriter) debugOutputHandler; } else if (debugOutputStream instanceof OutputStream) { - debugCloseOutputStream = (OutputStream)debugOutputStream; - xmlDebugWriter = new SAX3WriterXml(debugCloseOutputStream); - } - if (xmlDebugWriter!=null) { + xmlDebugWriter = new SAX3WriterXml((OutputStream) debugOutputStream); xmlDebugWriter.startDocument(); - xmlDebugWriter.startPrefixMapping("debug", X4ODebugWriter.DEBUG_URI); - X4ODebugWriter debugWriter = new X4ODebugWriter(xmlDebugWriter); - X4OLanguageSessionLocal local = (X4OLanguageSessionLocal)languageSession; - local.setX4ODebugWriter(debugWriter); - - // We only close if we started it, this is for recursief debugging. + xmlDebugWriter.startPrefixMapping(X4ODebugWriter.DEBUG_URI_NS, X4ODebugWriter.DEBUG_URI); + // We only close if we started it, this is for recursief debugging AND debug output stream. debugStarted = true; } + if (xmlDebugWriter != null) { + X4ODebugWriter debugWriter = new X4ODebugWriter(xmlDebugWriter); + X4OLanguageSessionLocal local = (X4OLanguageSessionLocal) languageSession; + local.setX4ODebugWriter(debugWriter); + } } - - // debug language + // start debug language if (languageSession.hasX4ODebugWriter()) { try { languageSession.getX4ODebugWriter().debugConnectionStart(languageSession, this); } catch (IOException e) { throw new SAXException(e); } - // Add debug phases for all phases - for (String key:languageSession.getLanguage().getPhaseManager().getPhaseKeys()) { + X4OLanguageSessionLocal local = (X4OLanguageSessionLocal) languageSession; + for (String key : languageSession.getLanguage().getPhaseManager().getPhaseKeys()) { X4OPhase p = languageSession.getLanguage().getPhaseManager().getPhase(key); - - p.addPhaseListener(languageSession.getX4ODebugWriter().createDebugX4OPhaseListener()); - + List listeners = local.storePhaseListeners(p.getId()); + listeners.add(languageSession.getX4ODebugWriter().createDebugX4OPhaseListener()); if (shouldPrintTree(p)) { - p.addPhaseListener(languageSession.getX4ODebugWriter().createDebugPrintTreePhaseListener()); + listeners.add(languageSession.getX4ODebugWriter().createDebugPrintTreePhaseListener()); } } } } - + private boolean shouldPrintTree(X4OPhase p) { String phase = p.getId(); if (X4OPhaseLanguageWrite.WRITE_END.equals(phase)) { @@ -118,22 +113,22 @@ public abstract class AbstractX4OConnectionDebug implements X4OConnection { } return false; } - - protected void debugException(X4OLanguageSession languageSession,Exception e) throws X4OConnectionException { + + protected void debugException(X4OLanguageSession languageSession, Exception e) throws X4OConnectionException { if (!languageSession.hasX4ODebugWriter()) { return; } try { AttributesImpl atts = new AttributesImpl(); - atts.addAttribute ("", "message", "", "", e.getMessage()); + atts.addAttribute("", "message", "", "", e.getMessage()); if (e instanceof X4OPhaseException) { - atts.addAttribute ("", "phase", "", "", ((X4OPhaseException)e).getX4OPhaseHandler().getId()); + atts.addAttribute("", "phase", "", "", ((X4OPhaseException) e).getX4OPhaseHandler().getId()); } languageSession.getX4ODebugWriter().getContentWriter().startElement(X4ODebugWriter.DEBUG_URI, "exceptionStackTrace", "", atts); StringWriter writer = new StringWriter(); PrintWriter printer = new PrintWriter(writer); printer.append('\n'); - if (e.getCause()==null) { + if (e.getCause() == null) { e.printStackTrace(printer); } else { e.getCause().printStackTrace(printer); @@ -142,10 +137,10 @@ public abstract class AbstractX4OConnectionDebug implements X4OConnection { languageSession.getX4ODebugWriter().getContentWriter().characters(stack, 0, stack.length); languageSession.getX4ODebugWriter().getContentWriter().endElement(X4ODebugWriter.DEBUG_URI, "exceptionStackTrace", ""); } catch (SAXException ee) { - throw new X4OConnectionException("Error while writing debug; "+ee.getMessage(),ee); + throw new X4OConnectionException("Error while writing debug; " + ee.getMessage(), ee); } } - + protected void debugStop(X4OLanguageSession languageSession) throws X4OConnectionException { if (!languageSession.hasX4ODebugWriter()) { return; @@ -155,20 +150,12 @@ public abstract class AbstractX4OConnectionDebug implements X4OConnection { if (!debugStarted) { return; // not in this instance started so no stopping then. } - languageSession.getX4ODebugWriter().getContentWriter().endPrefixMapping("debug"); + languageSession.getX4ODebugWriter().getContentWriter().endPrefixMapping(X4ODebugWriter.DEBUG_URI_NS); languageSession.getX4ODebugWriter().getContentWriter().endDocument(); - if (debugCloseOutputStream==null) { - return; // we have handler - } - debugCloseOutputStream.flush(); - if (!debugAutoCloseOutputStream) { - return; // no auto close - } - debugCloseOutputStream.close(); } catch (SAXException ee) { - throw new X4OConnectionException("Error while closing debug; "+ee.getMessage(),ee); + throw new X4OConnectionException("Error while closing debug; " + ee.getMessage(), ee); } catch (IOException ee) { - throw new X4OConnectionException("Error while closing debug; "+ee.getMessage(),ee); + throw new X4OConnectionException("Error while closing debug; " + ee.getMessage(), ee); } } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java index deccbe8..d9b8345 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReader.java @@ -20,7 +20,7 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.xml.io; +package org.x4o.xml.io; import java.io.File; import java.io.FileNotFoundException; @@ -41,92 +41,98 @@ import org.xml.sax.SAXException; */ @SuppressWarnings("unchecked") abstract public class AbstractX4OReader extends AbstractX4OReaderSession implements X4OReader { - + public AbstractX4OReader(X4OLanguage language) { super(language); } - + public T read(InputStream input, String systemId, URL basePath) throws X4OConnectionException, SAXException, IOException { try (X4OLanguageSession session = createLanguageSession()) { readSession(session, input, systemId, basePath); - return (T)session.getRootElement().getElementObject(); + return (T) session.getRootElement().getElementObject(); } } - + /** * Reads the file fileName and reads it as an InputStream. - * @param fileName The file name to read. - * @throws FileNotFoundException Is thrown is file is not found. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. + * + * @param fileName The file name to read. + * @throws FileNotFoundException Is thrown is file is not found. + * @throws X4OConnectionException Is thrown after x4o exception. + * @throws SAXException Is thrown after sax xml exception. + * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ public T readFile(String fileName) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { try (X4OLanguageSession session = createLanguageSession()) { readFileSession(session, fileName); - return (T)session.getRootElement().getElementObject(); + return (T) session.getRootElement().getElementObject(); } } - + /** * Reads the file and reads it as an InputStream. - * @param file The file to read. - * @throws FileNotFoundException Is thrown is file is not found. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. + * + * @param file The file to read. + * @throws FileNotFoundException Is thrown is file is not found. + * @throws X4OConnectionException Is thrown after x4o exception. + * @throws SAXException Is thrown after sax xml exception. + * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ public T readFile(File file) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { try (X4OLanguageSession session = createLanguageSession()) { readFileSession(session, file); - return (T)session.getRootElement().getElementObject(); + return (T) session.getRootElement().getElementObject(); } } - + /** * reads an resource locaction. - * @param resourceName The resource to readr. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. + * + * @param resourceName The resource to readr. + * @throws X4OConnectionException Is thrown after x4o exception. + * @throws SAXException Is thrown after sax xml exception. + * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ public T readResource(String resourceName) throws X4OConnectionException, SAXException, IOException { try (X4OLanguageSession session = createLanguageSession()) { readResourceSession(session, resourceName); - return (T)session.getRootElement().getElementObject(); + return (T) session.getRootElement().getElementObject(); } } - + /** * Converts a String to a InputStream to is can me readd by SAX. - * @param xmlString The xml as String to read. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. + * + * @param xmlString The xml as String to read. + * @throws X4OConnectionException Is thrown after x4o exception. + * @throws SAXException Is thrown after sax xml exception. + * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ public T readString(String xmlString) throws X4OConnectionException, SAXException, IOException { try (X4OLanguageSession session = createLanguageSession()) { readStringSession(session, xmlString); - return (T)session.getRootElement().getElementObject(); + return (T) session.getRootElement().getElementObject(); } } - + /** - * Fetched the data direct from remote url to a InputStream to is can me readd by SAX. - * @param url The url to read. - * @throws X4OConnectionException Is thrown after x4o exception. - * @throws SAXException Is thrown after sax xml exception. - * @throws IOException Is thrown after io exception. + * Fetched the data direct from remote url to a InputStream to is can me readd + * by SAX. + * + * @param url The url to read. + * @throws X4OConnectionException Is thrown after x4o exception. + * @throws SAXException Is thrown after sax xml exception. + * @throws IOException Is thrown after io exception. * @see org.x4o.xml.io.X4OReaderSession#readSession(java.io.InputStream,java.lang.String,java.net.URL) */ - public T readUrl(URL url) throws X4OConnectionException,SAXException,IOException { + public T readUrl(URL url) throws X4OConnectionException, SAXException, IOException { try (X4OLanguageSession session = createLanguageSession()) { readUrlSession(session, url); - return (T)session.getRootElement().getElementObject(); + return (T) session.getRootElement().getElementObject(); } } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java index ae8ec10..49af94d 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OReaderSession.java @@ -20,20 +20,20 @@ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.x4o.xml.io; +package org.x4o.xml.io; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; -import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguage; import org.x4o.xml.lang.X4OLanguageClassLoader; -import org.x4o.xml.lang.X4OLanguageSession; -import org.xml.sax.SAXException; +import org.x4o.xml.lang.X4OLanguageSession; +import org.xml.sax.SAXException; /** * AbstractX4OReaderSession @@ -43,7 +43,7 @@ import org.xml.sax.SAXException; * @param The root element object type. */ abstract public class AbstractX4OReaderSession extends AbstractX4OConnection implements X4OReaderSession { - + public AbstractX4OReaderSession(X4OLanguage language) { super(language); } @@ -54,56 +54,60 @@ abstract public class AbstractX4OReaderSession extends AbstractX4OConnection } readFileSession(session, new File(fileName)); } - + public void readFileSession(X4OLanguageSession session, File file) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { if (file == null) { throw new NullPointerException("Can't read null file."); } if (file.exists() == false) { - throw new FileNotFoundException("File does not exists; "+file); + throw new FileNotFoundException("File does not exists; " + file); } if (file.canRead() == false) { - throw new IOException("File exists but can't read file: "+file); + throw new IOException("File exists but can't read file: " + file); } URL basePath = new File(file.getAbsolutePath()).toURI().toURL(); try (InputStream inputStream = new FileInputStream(file)) { - readSession(session, inputStream,file.getAbsolutePath(),basePath); + readSession(session, inputStream, file.getAbsolutePath(), basePath); } } - + public void readResourceSession(X4OLanguageSession session, String resourceName) throws X4OConnectionException, SAXException, IOException { if (resourceName == null) { throw new NullPointerException("Can't read null resourceName from classpath."); } URL url = X4OLanguageClassLoader.getResource(resourceName); if (url == null) { - throw new NullPointerException("Could not find resource on classpath: "+resourceName); + throw new NullPointerException("Could not find resource on classpath: " + resourceName); } String baseUrl = url.toExternalForm(); int lastSlash = baseUrl.lastIndexOf('/'); - if (lastSlash > 0 && (lastSlash+1) < baseUrl.length()) { - baseUrl = baseUrl.substring(0,lastSlash+1); + if (lastSlash > 0 && (lastSlash + 1) < baseUrl.length()) { + baseUrl = baseUrl.substring(0, lastSlash + 1); } URL basePath = new URL(baseUrl); try (InputStream inputStream = X4OLanguageClassLoader.getResourceAsStream(resourceName)) { - readSession(session, inputStream,url.toExternalForm(),basePath); + readSession(session, inputStream, url.toExternalForm(), basePath); } } - + public void readStringSession(X4OLanguageSession session, String xmlString) throws X4OConnectionException, SAXException, IOException { if (xmlString == null) { throw new NullPointerException("Can't read null xml string."); } URL basePath = new File(System.getProperty("user.dir")).toURI().toURL(); - String encoding = (String)getProperty(DefaultX4OReader.INPUT_ENCODING); - readSession(session, new ByteArrayInputStream(xmlString.getBytes(encoding)),"inline-xml",basePath); + String encoding = (String) getProperty(DefaultX4OReader.INPUT_ENCODING); + try (InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes(encoding))) { + readSession(session, inputStream, "inline-xml", basePath); + } } - + public void readUrlSession(X4OLanguageSession session, URL url) throws X4OConnectionException, SAXException, IOException { if (url == null) { throw new NullPointerException("Can't read null url."); } - URL basePath = new URL(url.toExternalForm().substring(0,url.toExternalForm().length()-url.getFile().length())); - readSession(session, url.openStream(),url.toExternalForm(),basePath); + URL basePath = new URL(url.toExternalForm().substring(0, url.toExternalForm().length() - url.getFile().length())); + try (InputStream inputStream = url.openStream()) { + readSession(session, inputStream, url.toExternalForm(), basePath); + } } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java index 3289c8e..5311702 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriter.java @@ -45,7 +45,7 @@ public abstract class AbstractX4OWriter extends AbstractX4OWriterSession i public AbstractX4OWriter(X4OLanguage language) { super(language); } - + protected X4OLanguageSession createObjectContext(T object) throws SAXException { X4OLanguageSession context = createLanguageSession(); Element rootElement = null; @@ -59,26 +59,26 @@ public abstract class AbstractX4OWriter extends AbstractX4OWriterSession i context.setRootElement(rootElement); return context; } - - public void write(T object,OutputStream output) throws X4OConnectionException,SAXException,IOException { + + public void write(T object, OutputStream output) throws X4OConnectionException, SAXException, IOException { try (X4OLanguageSession session = createObjectContext(object)) { writeSession(session, output); } } - - public void writeFile(T object,String fileName) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { + + public void writeFile(T object, String fileName) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { try (X4OLanguageSession session = createObjectContext(object)) { writeFileSession(session, fileName); } } - - public void writeFile(T object,File file) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { + + public void writeFile(T object, File file) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { try (X4OLanguageSession session = createObjectContext(object)) { writeFileSession(session, file); } } - - public String writeString(T object) throws X4OConnectionException,SAXException,IOException,FileNotFoundException { + + public String writeString(T object) throws X4OConnectionException, SAXException, IOException, FileNotFoundException { try (X4OLanguageSession session = createObjectContext(object)) { return writeStringSession(session); } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java index 8fe0ab0..ae1117d 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/AbstractX4OWriterSession.java @@ -45,27 +45,27 @@ public abstract class AbstractX4OWriterSession extends AbstractX4OConnection public AbstractX4OWriterSession(X4OLanguage language) { super(language); } - - public void writeFileSession(X4OLanguageSession languageSession,String fileName) throws X4OConnectionException,SAXException,IOException { + + public void writeFileSession(X4OLanguageSession languageSession, String fileName) throws X4OConnectionException, SAXException, IOException { if (fileName == null) { throw new NullPointerException("Can't convert null fileName to file object."); } - writeFileSession(languageSession,new File(fileName)); + writeFileSession(languageSession, new File(fileName)); } - - public void writeFileSession(X4OLanguageSession languageSession,File file) throws X4OConnectionException,SAXException,IOException { + + public void writeFileSession(X4OLanguageSession languageSession, File file) throws X4OConnectionException, SAXException, IOException { if (file == null) { throw new NullPointerException("Can't read null file."); } try (OutputStream outputStream = new FileOutputStream(file)) { - writeSession(languageSession,outputStream); + writeSession(languageSession, outputStream); } } - - public String writeStringSession(X4OLanguageSession languageSession) throws X4OConnectionException,SAXException,IOException { + + public String writeStringSession(X4OLanguageSession languageSession) throws X4OConnectionException, SAXException, IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(4096); writeSession(languageSession, out); - String encoding = (String)getProperty(SAX3WriterXml.OUTPUT_ENCODING); + String encoding = (String) getProperty(SAX3WriterXml.OUTPUT_ENCODING); return out.toString(encoding); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java index c6a042d..9bcf4d6 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OReader.java @@ -38,6 +38,7 @@ import org.x4o.sax3.io.SAX3PropertyConfig; import org.x4o.sax3.io.SAX3XMLConstants; import org.x4o.sax3.io.SAX3PropertyConfig.PropertyConfigItem; import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageLocal; import org.x4o.xml.lang.X4OLanguageSession; import org.x4o.xml.lang.X4OLanguageSessionLocal; import org.x4o.xml.lang.phase.X4OPhaseType; @@ -75,10 +76,9 @@ public class DefaultX4OReader extends AbstractX4OReader { public final static String VALIDATION_INPUT_SCHEMA = PROPERTY_CONTEXT_PREFIX + "validation/input-schema"; public final static String DEBUG_OUTPUT_HANDLER = PROPERTY_CONTEXT_PREFIX + ABSTRACT_DEBUG_OUTPUT_HANDLER; public final static String DEBUG_OUTPUT_STREAM = PROPERTY_CONTEXT_PREFIX + ABSTRACT_DEBUG_OUTPUT_STREAM; - public final static String DEBUG_OUTPUT_STREAM_CLOSE = PROPERTY_CONTEXT_PREFIX + ABSTRACT_DEBUG_OUTPUT_STREAM_CLOSE; static { - DEFAULT_PROPERTY_CONFIG = new SAX3PropertyConfig(true,null,PROPERTY_CONTEXT_PREFIX, + DEFAULT_PROPERTY_CONFIG = new SAX3PropertyConfig(true, null, PROPERTY_CONTEXT_PREFIX, new PropertyConfigItem(SAX_ERROR_HANDLER,ErrorHandler.class), new PropertyConfigItem(SAX_ENTITY_RESOLVER,EntityResolver.class), new PropertyConfigItem(DOC_EMPTY_NAMESPACE_URI,String.class), @@ -93,18 +93,20 @@ public class DefaultX4OReader extends AbstractX4OReader { new PropertyConfigItem(VALIDATION_INPUT_DOC,Boolean.class,false), new PropertyConfigItem(VALIDATION_INPUT_SCHEMA,Boolean.class,false), new PropertyConfigItem(DEBUG_OUTPUT_HANDLER,ContentWriter.class), - new PropertyConfigItem(DEBUG_OUTPUT_STREAM,OutputStream.class), - new PropertyConfigItem(DEBUG_OUTPUT_STREAM_CLOSE,Boolean.class,true) + new PropertyConfigItem(DEBUG_OUTPUT_STREAM,OutputStream.class) ); } public DefaultX4OReader(X4OLanguage language) { super(language); - propertyConfig = new SAX3PropertyConfig(DEFAULT_PROPERTY_CONFIG,PROPERTY_CONTEXT_PREFIX); + propertyConfig = new SAX3PropertyConfig(DEFAULT_PROPERTY_CONFIG, PROPERTY_CONTEXT_PREFIX); } + /** + * @see org.x4o.xml.io.AbstractX4OConnection#getPropertyConfig() + */ @Override - SAX3PropertyConfig getPropertyConfig() { + public SAX3PropertyConfig getPropertyConfig() { return propertyConfig; } @@ -122,13 +124,13 @@ public class DefaultX4OReader extends AbstractX4OReader { } public void addELBeanInstance(String name, Object bean) { - if (name==null) { + if (name == null) { throw new NullPointerException("Can't add null name."); } - if (name.length()==0) { + if (name.length() == 0) { throw new NullPointerException("Can't add empty name."); } - if (bean==null) { + if (bean == null) { throw new NullPointerException("Can't add null bean."); } elBeans.put(name, bean); @@ -137,27 +139,30 @@ public class DefaultX4OReader extends AbstractX4OReader { /** * Parses the input stream as a X4O document. */ - protected void readSession(X4OLanguageSession languageSession) throws X4OConnectionException,SAXException,IOException { + protected void readSession(X4OLanguageSession languageSession) throws X4OConnectionException, SAXException, IOException { // Extra check if we have a language - if (languageSession.getLanguage()==null) { + if (languageSession.getLanguage() == null) { throw new X4OConnectionException("languageSession is broken getLanguage() returns null."); } // Insert stop/skip phase if we allowed to. TODO: move layer ? if (languageSession instanceof X4OLanguageSessionLocal) { X4OLanguageSessionLocal ll = (X4OLanguageSessionLocal)languageSession; - if (phaseStop!=null) { + if (phaseStop != null) { ll.setPhaseStop(phaseStop); } - for (String phaseId:phaseSkip) { + for (String phaseId : phaseSkip) { ll.addPhaseSkip(phaseId); } } // init debug - debugStart(languageSession, DEBUG_OUTPUT_HANDLER, DEBUG_OUTPUT_STREAM, DEBUG_OUTPUT_STREAM_CLOSE); + debugStart(languageSession, DEBUG_OUTPUT_HANDLER, DEBUG_OUTPUT_STREAM); try { + // Run init (auto once) + X4OLanguageLocal.class.cast(languageSession.getLanguage()).init(languageSession); + // Run document parsing X4OContentParser parser = new X4OContentParser(propertyConfig); parser.parse(languageSession); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java index 529a3ef..e2d4da5 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/DefaultX4OWriter.java @@ -46,6 +46,7 @@ import org.x4o.xml.element.ElementInterface; import org.x4o.xml.element.ElementNamespace; import org.x4o.xml.element.ElementObjectPropertyValueException; import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageLocal; import org.x4o.xml.lang.X4OLanguageSession; import org.x4o.xml.lang.X4OLanguageModule; import org.x4o.xml.lang.phase.X4OPhaseException; @@ -76,17 +77,15 @@ public class DefaultX4OWriter extends AbstractX4OWriter { public final static String SCHEMA_ROOT_URI = PROPERTY_CONTEXT_PREFIX+"schema/root-uri"; public final static String DEBUG_OUTPUT_HANDLER = PROPERTY_CONTEXT_PREFIX + ABSTRACT_DEBUG_OUTPUT_HANDLER; public final static String DEBUG_OUTPUT_STREAM = PROPERTY_CONTEXT_PREFIX + ABSTRACT_DEBUG_OUTPUT_STREAM; - public final static String DEBUG_OUTPUT_STREAM_CLOSE = PROPERTY_CONTEXT_PREFIX + ABSTRACT_DEBUG_OUTPUT_STREAM_CLOSE; static { - DEFAULT_PROPERTY_CONFIG = new SAX3PropertyConfig(true,SAX3WriterXml.DEFAULT_PROPERTY_CONFIG,PROPERTY_CONTEXT_PREFIX, + DEFAULT_PROPERTY_CONFIG = new SAX3PropertyConfig(true, SAX3WriterXml.DEFAULT_PROPERTY_CONFIG, PROPERTY_CONTEXT_PREFIX, new PropertyConfigItem(true,OUTPUT_STREAM,OutputStream.class), new PropertyConfigItem(OUTPUT_XDBX,Boolean.class,false), new PropertyConfigItem(SCHEMA_PRINT,Boolean.class,true), new PropertyConfigItem(SCHEMA_ROOT_URI,String.class), new PropertyConfigItem(DEBUG_OUTPUT_HANDLER,ContentWriter.class), - new PropertyConfigItem(DEBUG_OUTPUT_STREAM,OutputStream.class), - new PropertyConfigItem(DEBUG_OUTPUT_STREAM_CLOSE,Boolean.class,true) + new PropertyConfigItem(DEBUG_OUTPUT_STREAM,OutputStream.class) ); } @@ -112,8 +111,9 @@ public class DefaultX4OWriter extends AbstractX4OWriter { public void writeSession(X4OLanguageSession languageSession, OutputStream output) throws X4OConnectionException,SAXException,IOException { setProperty(OUTPUT_STREAM, output); addPhaseSkip(X4OPhaseLanguageWrite.WRITE_RELEASE); - debugStart(languageSession, DEBUG_OUTPUT_HANDLER, DEBUG_OUTPUT_STREAM, DEBUG_OUTPUT_STREAM_CLOSE); + debugStart(languageSession, DEBUG_OUTPUT_HANDLER, DEBUG_OUTPUT_STREAM); try { + X4OLanguageLocal.class.cast(languageSession.getLanguage()).init(languageSession); languageSession.getLanguage().getPhaseManager().runPhases(languageSession, X4OPhaseType.XML_WRITE); } catch (X4OPhaseException e) { throw new X4OConnectionException(e); @@ -121,6 +121,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { runWrite(languageSession); } + @SuppressWarnings("resource") // caller closes the resource thus writerXML and writerXDBX are not closed private void runWrite(X4OLanguageSession languageSession) throws X4OConnectionException { OutputStream out = (OutputStream)getProperty(OUTPUT_STREAM); try { @@ -169,7 +170,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { debugException(languageSession, e); throw new X4OConnectionException(e); } finally { - if (out!=null) { + if (out != null) { try { out.close(); } catch (IOException e) { @@ -201,7 +202,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { if (m.getName().equals("getClass")) { continue; } - if (m.getName().startsWith("get")==false) { + if (m.getName().startsWith("get") == false) { continue; } String name = m.getName().substring(3, 4).toLowerCase() + m.getName().substring(4); @@ -233,7 +234,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { private void writeTree(ContentWriter writer, Element element, boolean isRoot) throws SAXException, ElementObjectPropertyValueException { List attr = new ArrayList(20); if (element.getElementClass().getAutoAttributes() != null && element.getElementClass().getAutoAttributes() == false) { - for (ElementClassAttribute eca:element.getElementClass().getElementClassAttributes()) { + for (ElementClassAttribute eca : element.getElementClass().getElementClassAttributes()) { if (eca.getRunBeanValue() != null && eca.getRunBeanValue() == false) { continue; } @@ -241,7 +242,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { if (value == null) { continue; } - AttributeEntry e = new AttributeEntry(eca.getId(), ""+value, calcOrderNumber(eca.getId(),eca.getWriteOrder())); + AttributeEntry e = new AttributeEntry(eca.getId(), "" + value, calcOrderNumber(eca.getId(), eca.getWriteOrder())); attr.add(e); } @@ -278,7 +279,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { if (value instanceof List || value instanceof Collection) { continue; // TODO; filter on type of childeren } - AttributeEntry e = new AttributeEntry(p, ""+value, calcOrderNumber(p,writeOrder)); + AttributeEntry e = new AttributeEntry(p, "" + value, calcOrderNumber(p,writeOrder)); attr.add(e); } } @@ -288,7 +289,7 @@ public class DefaultX4OWriter extends AbstractX4OWriter { if (isRoot && schemaUriPrint) { String rootUri = findElementUri(element); writer.startPrefixMapping("xsi", SAX3XMLConstants.XML_SCHEMA_INSTANCE_NS_URI); - atts.addAttribute ("xsi", "schemaLocation", "", "", rootUri+" "+schemaUriRoot); + atts.addAttribute ("xsi", "schemaLocation", "", "", rootUri + " " + schemaUriRoot); } // Sort attributes in natural order of localName and add to attributes diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java index 728eb5e..d7bf627 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/io/X4ODebugWriter.java @@ -31,7 +31,6 @@ import java.util.Map; import org.x4o.sax3.SAX3WriterEnum; import org.x4o.sax3.io.ContentWriter; -import org.x4o.sax3.io.SAX3XMLConstants; import org.x4o.xml.conv.ObjectConverter; import org.x4o.xml.element.Element; import org.x4o.xml.element.ElementNamespaceAttribute; @@ -48,6 +47,7 @@ import org.x4o.xml.element.ElementNamespaceInstanceProvider; import org.x4o.xml.lang.X4OLanguageModule; import org.x4o.xml.lang.X4OLanguageModuleLoaderResult; import org.x4o.xml.lang.X4OLanguageSession; +import org.x4o.xml.lang.X4OLanguageSessionLocal; import org.x4o.xml.lang.X4OLanguageConfiguration; import org.x4o.xml.lang.phase.X4OPhase; import org.x4o.xml.lang.phase.X4OPhaseException; @@ -63,12 +63,13 @@ import org.xml.sax.helpers.AttributesImpl; */ public class X4ODebugWriter { - static public final String DEBUG_URI = "http://language.x4o.org/xml/ns/debug-output"; + static public final String DEBUG_URI = "http://language.x4o.org/xml/ns/debug-output"; + static public final String DEBUG_URI_NS = "debug"; protected SAX3WriterEnum contentWriter = null; public X4ODebugWriter(ContentWriter debugWriter) { - this.contentWriter=new SAX3WriterEnum(debugWriter,DEBUG_URI,SAX3XMLConstants.NULL_NS_URI); + this.contentWriter = new SAX3WriterEnum(debugWriter, DEBUG_URI, DEBUG_URI_NS); } public ContentWriter getContentWriter() { @@ -83,6 +84,7 @@ public class X4ODebugWriter { X4OConnection, X4OLanguageSession, X4OLanguageSessionSkipPhase, + X4OLanguageSessionPhaseListener, X4OConnectionProperties, X4OConnectionProperty, @@ -91,7 +93,6 @@ public class X4ODebugWriter { phaseOrder, phase, - X4OPhaseListener, X4OPhaseDependency, ElementLanguageModules, @@ -196,10 +197,24 @@ public class X4ODebugWriter { atts = new AttributesImpl(); atts.addAttribute("", "phaseStop", "", "", languageSession.getPhaseStop()); atts.addAttribute("", "className", "", "", languageSession.getClass().getName()); + //atts.addAttribute("", "listenersSize", "", "", phase.getPhaseListeners().size()+""); contentWriter.printTagStart(Tag.X4OLanguageSession, atts); for (String skipPhase:languageSession.getPhaseSkip()) { contentWriter.printTagCharacters(Tag.X4OLanguageSessionSkipPhase, skipPhase); } + if (languageSession instanceof X4OLanguageSessionLocal) { + X4OLanguageSessionLocal languageSessionLocal = X4OLanguageSessionLocal.class.cast(languageSession); + for (String key : languageSession.getLanguage().getPhaseManager().getPhaseKeys()) { + X4OPhase p = languageSession.getLanguage().getPhaseManager().getPhase(key); + List listeners = languageSessionLocal.storePhaseListeners(p.getId()); + for (X4OPhaseListener l : listeners) { + atts = new AttributesImpl(); + atts.addAttribute("", "phaseId", "", "", p.getId()); + atts.addAttribute("", "className", "", "", l.getClass().getName()); + contentWriter.printTagStartEnd(Tag.X4OLanguageSessionPhaseListener, atts); + } + } + } contentWriter.printTagEnd(Tag.X4OLanguageSession); atts = new AttributesImpl(); @@ -286,14 +301,8 @@ public class X4ODebugWriter { atts.addAttribute("", "id", "", "", phase.getId()); atts.addAttribute("", "type", "", "", phase.getType().name()); atts.addAttribute("", "runOnce", "", "", phase.isRunOnce()+""); - atts.addAttribute("", "listenersSize", "", "", phase.getPhaseListeners().size()+""); contentWriter.printTagStart(Tag.phase, atts); - for (X4OPhaseListener l:phase.getPhaseListeners()) { - atts = new AttributesImpl(); - atts.addAttribute("", "className", "", "", l.getClass().getName()); - contentWriter.printTagStartEnd(Tag.X4OPhaseListener, atts); - } for (String dep:phase.getPhaseDependencies()) { contentWriter.printTagCharacters(Tag.X4OPhaseDependency, dep); } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java index fb44ab3..079b5a5 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/AbstractX4OLanguageSession.java @@ -23,7 +23,9 @@ package org.x4o.xml.lang; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Logger; import javax.el.ELContext; @@ -34,6 +36,7 @@ import org.x4o.xml.element.ElementAttributeValueParser; import org.x4o.xml.element.ElementObjectPropertyValue; import org.x4o.xml.io.X4ODebugWriter; import org.x4o.xml.lang.phase.X4OPhase; +import org.x4o.xml.lang.phase.X4OPhaseListener; /** * AbstractX4OLanguageSession. @@ -55,19 +58,21 @@ public abstract class AbstractX4OLanguageSession implements X4OLanguageSessionLo private X4OPhase phaseCurrent = null; private String phaseStop = null; private List phaseSkip = null; + private Map> phaseListeners = null; /** * Creates a new empty language context. */ public AbstractX4OLanguageSession(X4OLanguage language) { - if (language==null) { + if (language == null) { throw new NullPointerException("language may not be null"); } logger = Logger.getLogger(AbstractX4OLanguageSession.class.getName()); logger.finest("Creating new ParsingContext"); this.language=language; - dirtyElements = new ArrayList(20); - phaseSkip = new ArrayList(5); + dirtyElements = new ArrayList<>(20); + phaseSkip = new ArrayList<>(5); + phaseListeners = new HashMap<>(3); } public X4OLanguage getLanguage() { @@ -238,4 +243,18 @@ public abstract class AbstractX4OLanguageSession implements X4OLanguageSessionLo public void addPhaseSkip(String phaseId) { phaseSkip.add(phaseId); } + + /** + * Gets the phase listeners for a phase. + * @param phaseId The phaseId of for the listeners. + * @return The x4o phase listeners. + */ + public List storePhaseListeners(String phaseId) { + List result = phaseListeners.get(phaseId); + if (result == null) { + result = new ArrayList<>(3); + phaseListeners.put(phaseId, result); + } + return result; + } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java index 6103267..1ac936a 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguage.java @@ -38,7 +38,9 @@ import org.x4o.xml.element.ElementInterface; import org.x4o.xml.element.ElementNamespace; import org.x4o.xml.element.ElementNamespaceInstanceProviderException; import org.x4o.xml.element.ElementObjectPropertyValue; +import org.x4o.xml.lang.phase.X4OPhaseException; import org.x4o.xml.lang.phase.X4OPhaseManager; +import org.x4o.xml.lang.phase.X4OPhaseType; /** * DefaultX4OLanguage holds all information about the x4o xml language. @@ -55,6 +57,7 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { private final String languageVersion; private final X4OPhaseManager phaseManager; private final Map keyedNamespaceLookup; + private boolean inited = false; public DefaultX4OLanguage(X4OLanguageConfiguration languageConfiguration, X4OPhaseManager phaseManager, String languageName, String languageVersion) { if (languageName == null) { @@ -72,6 +75,15 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { this.phaseManager = phaseManager; } + @Override + public void init(X4OLanguageSession session) throws X4OPhaseException { + if (inited) { + return; + } + inited = true; + getPhaseManager().runPhases(session, X4OPhaseType.INIT); + } + /** * @see org.x4o.xml.lang.X4OLanguage#getLanguageName() */ @@ -139,16 +151,13 @@ public class DefaultX4OLanguage implements X4OLanguageLocal { languageSession.setExpressionLanguageFactory(X4OExpressionFactory.createExpressionFactory()); } if (languageSession.getExpressionLanguageContext() == null) { - languageSession.setExpressionLanguageContext( - X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext())); + languageSession.setExpressionLanguageContext(X4OExpressionFactory.createELContext(languageSession.getLanguage().getLanguageConfiguration().getDefaultExpressionLanguageContext())); } if (languageSession.getElementAttributeValueParser() == null) { - languageSession.setElementAttributeValueParser(X4OLanguageClassLoader.newInstance(ElementAttributeValueParser.class, - getLanguageConfiguration().getDefaultElementAttributeValueParser())); + languageSession.setElementAttributeValueParser(X4OLanguageClassLoader.newInstance(ElementAttributeValueParser.class, getLanguageConfiguration().getDefaultElementAttributeValueParser())); } if (languageSession.getElementObjectPropertyValue() == null) { - languageSession.setElementObjectPropertyValue(X4OLanguageClassLoader.newInstance(ElementObjectPropertyValue.class, - getLanguageConfiguration().getDefaultElementObjectPropertyValue())); + languageSession.setElementObjectPropertyValue(X4OLanguageClassLoader.newInstance(ElementObjectPropertyValue.class, getLanguageConfiguration().getDefaultElementObjectPropertyValue())); } } catch (ClassNotFoundException e) { throw new RuntimeException(e.getMessage(), e); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java index dcc1334..75d574e 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageLoader.java @@ -37,6 +37,7 @@ import javax.xml.parsers.SAXParserFactory; import org.x4o.xml.eld.EldDriver; import org.x4o.xml.eld.EldModuleLoader; +import org.x4o.xml.element.ElementException; import org.x4o.xml.lang.phase.X4OPhaseLanguageInit; import org.x4o.xml.lang.phase.X4OPhaseLanguageInit.X4OPhaseInitLanguageSiblings; import org.xml.sax.Attributes; @@ -67,74 +68,70 @@ public class DefaultX4OLanguageLoader implements X4OLanguageLoader { * @param language The X4O language we are loading. * @param message The message to log to the debug output. */ - private void logMessage(X4OLanguage language,String message) { - logger.finest(message+" from: "+language.getLanguageName()); - /* -TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { + private void logMessage(X4OLanguageSession session, String message) { + logger.finest(message + " from: " + session.getLanguage().getLanguageName()); + if (session.hasX4ODebugWriter()) { try { - language.getLanguageConfiguration().getX4ODebugWriter().debugPhaseMessage(message, this.getClass()); + session.getX4ODebugWriter().debugPhaseMessage(message, this.getClass()); } catch (ElementException e) { throw new RuntimeException(e); } } - */ } - /** - * @see org.x4o.xml.lang.X4OLanguageLoader#loadLanguage(org.x4o.xml.lang.X4OLanguageLocal, java.lang.String, java.lang.String) - */ - public void loadLanguage(X4OLanguageLocal languageLocal, String language,String languageVersion) throws X4OLanguageLoaderException { - logger.finer("Loading all modules for language: "+language); - List modulesAll = loadLanguageModules(languageLocal,language); - modulesAll = filterVersionModules(modulesAll,languageLocal,languageVersion); + @Override + public void loadLanguage(X4OLanguageSession session, X4OLanguageLocal languageLocal, String language, String languageVersion) throws X4OLanguageLoaderException { + logger.finer("Loading all modules for language: " + language); + List modulesAll = loadLanguageModules(session, languageLocal, language); + modulesAll = filterVersionModules(modulesAll, languageLocal, languageVersion); validateModules(modulesAll); int loaded = 0; - for (VersionedResources versionedResources:modulesAll) { + for (VersionedResources versionedResources : modulesAll) { X4OLanguageModuleLoader loader; - for (String value:versionedResources.eldResources) { + for (String value : versionedResources.eldResources) { String languagePrefix = languageLocal.getLanguageConfiguration().getLanguageResourcePathPrefix(); - String resource = languagePrefix+"/"+language+"/"+value; + String resource = languagePrefix + "/" + language + "/" + value; if (language.equals(EldDriver.LANGUAGE_NAME)) { loader = new EldModuleLoader(resource,true); // load cel } else { loader = new EldModuleLoader(resource,false); // load eld } - loadModule(languageLocal,loader,value,versionedResources); + loadModule(session, languageLocal, loader, value, versionedResources); } - for (String value:versionedResources.moduleLoaders) { + for (String value : versionedResources.moduleLoaders) { try { loader = (X4OLanguageModuleLoader)X4OLanguageClassLoader.newInstance(value); } catch (Exception ee) { - throw new X4OLanguageLoaderException("Could not load class: "+value+" error: "+ee.getMessage(),ee); + throw new X4OLanguageLoaderException("Could not load class: " + value + " error: " + ee.getMessage(),ee); } - loadModule(languageLocal,loader,value,versionedResources); + loadModule(session, languageLocal, loader, value, versionedResources); } - for (String value:versionedResources.siblingLoaders) { + for (String value : versionedResources.siblingLoaders) { try { loader = (X4OLanguageModuleLoader)X4OLanguageClassLoader.newInstance(value); } catch (Exception ee) { - throw new X4OLanguageLoaderException("Could not load class: "+value+" error: "+ee.getMessage(),ee); + throw new X4OLanguageLoaderException("Could not load class: " + value + " error: " + ee.getMessage(),ee); } - loadModule(languageLocal,loader,value,versionedResources); + loadModule(session, languageLocal, loader, value, versionedResources); if (loader instanceof X4OLanguageModuleLoaderSibling) { // mmm X4OPhaseInitLanguageSiblings sibPhase = (X4OPhaseInitLanguageSiblings)languageLocal.getPhaseManager().getPhase(X4OPhaseLanguageInit.INIT_LANG_SIB); sibPhase.addLanguageModuleLoaderSibling((X4OLanguageModuleLoaderSibling)loader); } } - for (String value:versionedResources.elbResources) { + for (String value : versionedResources.elbResources) { // TODO: add elb support - logger.finer("elb-resources are not done yet; "+value); + logger.finer("elb-resources are not done yet; " + value); } loaded++; } - if (loaded==0) { - throw new X4OLanguageLoaderException("No modules defined for version: "+languageVersion); + if (loaded == 0) { + throw new X4OLanguageLoaderException("No modules defined for version: " + languageVersion); } } - private List filterVersionModules(List resources,X4OLanguageLocal languageLocal,String languageVersion) throws X4OLanguageLoaderException { + private List filterVersionModules(List resources, X4OLanguageLocal languageLocal, String languageVersion) throws X4OLanguageLoaderException { List result = new ArrayList(resources.size()); X4OLanguageVersionFilter lvf; try { @@ -142,11 +139,11 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { } catch (ClassNotFoundException e) { throw new X4OLanguageLoaderException(e); } - for (VersionedResources versionedResources:resources) { + for (VersionedResources versionedResources : resources) { List versions = new ArrayList(); versions.add(versionedResources.version); // FIXME String modulesVersion = lvf.filterVersion(languageVersion, versions); - if (modulesVersion==null) { + if (modulesVersion == null) { continue; } result.add(versionedResources); @@ -159,44 +156,44 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { List moduleLoaders = new ArrayList(5); List elbResources = new ArrayList(5); List siblingLoaders = new ArrayList(5); - for (VersionedResources vr:resources) { - validateModuleList(eldResources,vr.eldResources,"eld-resource"); - validateModuleList(moduleLoaders,vr.moduleLoaders,"module-loader"); - validateModuleList(elbResources,vr.elbResources,"elb-resource"); - validateModuleList(siblingLoaders,vr.siblingLoaders,"sibling-loader"); + for (VersionedResources vr : resources) { + validateModuleList(eldResources, vr.eldResources, "eld-resource"); + validateModuleList(moduleLoaders, vr.moduleLoaders, "module-loader"); + validateModuleList(elbResources, vr.elbResources, "elb-resource"); + validateModuleList(siblingLoaders, vr.siblingLoaders, "sibling-loader"); } } - private void validateModuleList(List data,List values,String xmlTag) throws X4OLanguageLoaderException { - for (String value:values) { + private void validateModuleList(List data, List values, String xmlTag) throws X4OLanguageLoaderException { + for (String value : values) { if (data.contains(value)) { - throw new X4OLanguageLoaderException("Duplicate "+xmlTag+" entry detected; "+value); + throw new X4OLanguageLoaderException("Duplicate " + xmlTag + " entry detected; " + value); } data.add(value); } } - private void loadModule(X4OLanguageLocal languageLocal,X4OLanguageModuleLoader loader,String resource,VersionedResources versionedResources) throws X4OLanguageLoaderException { + private void loadModule(X4OLanguageSession session, X4OLanguageLocal languageLocal, X4OLanguageModuleLoader loader, String resource, VersionedResources versionedResources) throws X4OLanguageLoaderException { X4OLanguageModuleLocal module; try { module = X4OLanguageClassLoader.newInstance(X4OLanguageModuleLocal.class, languageLocal.getLanguageConfiguration().getDefaultElementLanguageModule()); } catch (ClassNotFoundException e) { throw new X4OLanguageLoaderException(e); } - logMessage(languageLocal,"Created module: "+module); + logMessage(session,"Created module: " + module); long startTime = System.currentTimeMillis(); try { - logMessage(languageLocal,"Starting modules: "+module+" for language: "+languageLocal.getLanguageName()); - loader.loadLanguageModule(languageLocal, module); + logMessage(session,"Starting modules: " + module + " for language: " + languageLocal.getLanguageName()); + loader.loadLanguageModule(session, languageLocal, module); } catch (X4OLanguageModuleLoaderException e) { throw new X4OLanguageLoaderException(e); // FIXME info } long totalTime = System.currentTimeMillis() - startTime; - module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_TIME, ""+totalTime); + module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_TIME, "" + totalTime); module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_VERSION, versionedResources.version); module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_CLASS, loader.getClass().getName()); - module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_DATE, ""+new Date()); - if (resource!=null) { + module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_DATE, "" + new Date()); + if (resource != null) { module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_MODULE_RESOURCE, resource); } module.putLoaderResult(X4OLanguageModuleLoaderResult.LOAD_FROM_RESOURCE, versionedResources.loadedFrom); @@ -209,7 +206,7 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { * @param languageLocal The ElementLanguage to load for. * @param language The language to load. */ - protected List loadLanguageModules(X4OLanguageLocal languageLocal,String language) throws X4OLanguageLoaderException { + protected List loadLanguageModules(X4OLanguageSession session, X4OLanguageLocal languageLocal, String language) throws X4OLanguageLoaderException { List result = new ArrayList(15); StringBuilder buf = new StringBuilder(150); buf.append(languageLocal.getLanguageConfiguration().getLanguageResourcePathPrefix()); @@ -219,20 +216,20 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { buf.append(language); buf.append(languageLocal.getLanguageConfiguration().getLanguageResourceModulesFileName()); - logger.finer("loading X4O language: "+language); + logger.finer("loading X4O language: " + language); try { Enumeration e = Thread.currentThread().getContextClassLoader().getResources(buf.toString()); - while(e.hasMoreElements()) { + while (e.hasMoreElements()) { URL u = e.nextElement(); - logMessage(languageLocal,"Loading relative modules: "+u+" for: "+language); - result.addAll(loadLanguageModulesXml(u.openStream(),u.toString())); + logMessage(session, "Loading relative modules: " + u + " for: " + language); + result.addAll(loadLanguageModulesXml(u.openStream(), u.toString())); } e = Thread.currentThread().getContextClassLoader().getResources("/"+buf.toString()); - while(e.hasMoreElements()) { + while (e.hasMoreElements()) { URL u = e.nextElement(); - logMessage(languageLocal,"Loading root modules: "+u+" for: "+language); - result.addAll(loadLanguageModulesXml(u.openStream(),u.toString())); + logMessage(session, "Loading root modules: " + u + " for: " + language); + result.addAll(loadLanguageModulesXml(u.openStream(), u.toString())); } return result; } catch (IOException | SAXException | ParserConfigurationException e) { @@ -247,8 +244,8 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { * @throws SAXException * @throws ParserConfigurationException */ - protected List loadLanguageModulesXml(InputStream in,String loadedFrom) throws IOException, SAXException, ParserConfigurationException { - if (in==null) { + protected List loadLanguageModulesXml(InputStream in, String loadedFrom) throws IOException, SAXException, ParserConfigurationException { + if (in == null) { throw new NullPointerException("Can't parse null input stream"); } ModulesTagHandler xth = new ModulesTagHandler(loadedFrom); @@ -274,12 +271,11 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { private List result = null; public ModulesTagHandler(String loadedFrom) { - this.loadedFrom=loadedFrom; + this.loadedFrom = loadedFrom; this.result = new ArrayList(5); } - public List getResult() - { + public List getResult() { return result; } @@ -288,13 +284,13 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { } @Override - public void startElement(String namespaceUri, String tag, String qName,Attributes attr) throws SAXException { + public void startElement(String namespaceUri, String tag, String qName, Attributes attr) throws SAXException { if ("language".equals(tag)) { String version = attr.getValue("version"); versionedResources = new VersionedResources(); - versionedResources.version=version; - versionedResources.loadedFrom=loadedFrom; - logger.finest("Version attribute: "+version); + versionedResources.version = version; + versionedResources.loadedFrom = loadedFrom; + logger.finest("Version attribute: " + version); } } @@ -314,7 +310,7 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { versionedResources = null; return; } - if (versionedResources==null) { + if (versionedResources == null) { return; } @@ -327,13 +323,13 @@ TODO: if (language.getLanguageConfiguration().hasX4ODebugWriter()) { } else if ("sibling-loader".equals(tag)) { versionedResources.siblingLoaders.add(value); } - logger.finest("Stored tag: "+tag+" value: "+value); + logger.finest("Stored tag: " + tag + " value: " + value); } @Override public void characters(char[] ch, int start, int length) throws SAXException { - String text = new String(ch,start,length).trim(); - if (text.length()==0) { + String text = new String(ch, start, length).trim(); + if (text.length() == 0) { return; } buf.append(text); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java index 4310870..0ed305a 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/DefaultX4OLanguageSession.java @@ -34,7 +34,7 @@ import org.x4o.xml.lang.phase.X4OPhaseException; public class DefaultX4OLanguageSession extends AbstractX4OLanguageSession { /** - * Creates a new empty language context. + * Creates a new empty language session. */ public DefaultX4OLanguageSession(X4OLanguage language) { super(language); diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLoader.java index 43d7454..342a165 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLoader.java @@ -32,10 +32,11 @@ public interface X4OLanguageLoader { /** * Loads the language modules. - * @param languageLocal The elementLanguage to load the module in. + * @param session The session we run in. + * @param language The local Language to load for. * @param languageName The language name to load. * @param languageVersion The language version to load. * @throws X4OLanguageLoaderException When there is an error. */ - void loadLanguage(X4OLanguageLocal languageLocal,String languageName,String languageVersion) throws X4OLanguageLoaderException; + void loadLanguage(X4OLanguageSession session, X4OLanguageLocal language, String languageName, String languageVersion) throws X4OLanguageLoaderException; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLocal.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLocal.java index 4af718f..8fe4bca 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLocal.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageLocal.java @@ -22,6 +22,7 @@ */ package org.x4o.xml.lang; +import org.x4o.xml.lang.phase.X4OPhaseException; /** * X4OLanguageLocal exposes the add method to load the language. @@ -31,11 +32,8 @@ package org.x4o.xml.lang; */ public interface X4OLanguageLocal extends X4OLanguage { - /* - * @param parserConfiguration The parserConfiguration to set. - - void setLanguageConfiguration(X4OLanguageConfiguration parserConfiguration); - */ + // TODO: refactor a bit more a this is now called manually on magic places + void init(X4OLanguageSession session) throws X4OPhaseException; /** * Adds an X4OLanguageModule to this language. diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoader.java index 82db17a..1279d05 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoader.java @@ -33,9 +33,10 @@ public interface X4OLanguageModuleLoader { /** * Starts the ElementProvider. - * @param language The ElementLanguage to load for. - * @param module The ElementLanguageModule to load it into. + * @param session The session we run in. + * @param language The local Language to load for. + * @param module The language module to load it into. * @throws X4OLanguageModuleLoaderException Gets thrown when modules could not be correctly loaded. */ - void loadLanguageModule(X4OLanguageLocal language,X4OLanguageModuleLocal module) throws X4OLanguageModuleLoaderException; + void loadLanguageModule(X4OLanguageSession session, X4OLanguageLocal language, X4OLanguageModuleLocal module) throws X4OLanguageModuleLoaderException; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoaderSibling.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoaderSibling.java index c397e14..49df662 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoaderSibling.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageModuleLoaderSibling.java @@ -35,9 +35,10 @@ public interface X4OLanguageModuleLoaderSibling extends X4OLanguageModuleLoader /** * Loads in the sibling language. - * @param languageLocal The ElementLanguage for which we load an sibling. - * @param languageLoader The loader to use to load the x4o languages. + * @param session The session we run in. + * @param language The local Language to load for. + * @param loader The loader to use to load the x4o languages. * @throws X4OLanguageLoaderException Gets thrown when there is an error loading the sibling language. */ - void loadLanguageSibling(X4OLanguageLocal languageLocal,X4OLanguageLoader languageLoader) throws X4OLanguageLoaderException; + void loadLanguageSibling(X4OLanguageSession session, X4OLanguageLocal language, X4OLanguageLoader loader) throws X4OLanguageLoaderException; } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java index e55592c..200c5ee 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/X4OLanguageSessionLocal.java @@ -22,6 +22,8 @@ */ package org.x4o.xml.lang; +import java.util.List; + import javax.el.ELContext; import javax.el.ExpressionFactory; @@ -29,6 +31,7 @@ import org.x4o.xml.element.ElementAttributeValueParser; import org.x4o.xml.element.ElementObjectPropertyValue; import org.x4o.xml.io.X4ODebugWriter; import org.x4o.xml.lang.phase.X4OPhase; +import org.x4o.xml.lang.phase.X4OPhaseListener; /** * X4OLanguageSessionLocal is the local set interface for X4OLanguageSession. @@ -37,7 +40,15 @@ import org.x4o.xml.lang.phase.X4OPhase; * @version 1.0 Oct 28, 2009 */ public interface X4OLanguageSessionLocal extends X4OLanguageSession { - + + /** + * Returns list of phase listeners which where added to it. + * TODO: bad api here + * @param phaseId The phaseId of for the listeners. + * @return All X4OPhaseListeners. + */ + List storePhaseListeners(String phaseId); + /** * Sets the EL Context. * @param context The ELContext to set. diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/MetaLanguageSiblingLoader.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/MetaLanguageSiblingLoader.java index 7b4b7ee..8a5833e 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/MetaLanguageSiblingLoader.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/meta/MetaLanguageSiblingLoader.java @@ -28,6 +28,7 @@ import org.x4o.xml.lang.X4OLanguageLoader; import org.x4o.xml.lang.X4OLanguageLoaderException; import org.x4o.xml.lang.X4OLanguageLocal; import org.x4o.xml.lang.X4OLanguageModuleLocal; +import org.x4o.xml.lang.X4OLanguageSession; /** * MetaLanguageSiblingLoader loads the generic x4o meta language into defined language. @@ -49,30 +50,16 @@ public class MetaLanguageSiblingLoader implements X4OLanguageModuleLoaderSibling /** Defines the identifier of the meta x4o language host. */ public static final String META_LANGUAGE_DESCRIPTION = "X4O Meta XML Language Module."; - /** - * Loads an ElementLanguageModule. - * @param language The ElementLanguage to load for. - * @param languageModule The ElementLanguageModule to load into. - * @throws X4OLanguageModuleLoaderException Is thrown when meta language could not be loaded. - * @see org.x4o.xml.lang.X4OLanguageModuleLoader#loadLanguageModule(org.x4o.xml.lang.X4OLanguageLocal, org.x4o.xml.lang.X4OLanguageModuleLocal) - */ - public void loadLanguageModule(X4OLanguageLocal language,X4OLanguageModuleLocal languageModule) throws X4OLanguageModuleLoaderException { - languageModule.setId(META_LANGUAGE); - languageModule.setProviderHost(META_LANGUAGE_HOST); - languageModule.setProviderName(MetaLanguageSiblingLoader.class.getSimpleName()); - languageModule.setDescription(META_LANGUAGE_DESCRIPTION); + @Override + public void loadLanguageModule(X4OLanguageSession session, X4OLanguageLocal language, X4OLanguageModuleLocal module) throws X4OLanguageModuleLoaderException { + module.setId(META_LANGUAGE); + module.setProviderHost(META_LANGUAGE_HOST); + module.setProviderName(MetaLanguageSiblingLoader.class.getSimpleName()); + module.setDescription(META_LANGUAGE_DESCRIPTION); } - /** - * Loads an sibling language. - * @param language The ElementLanguage to load for. - * @param languageLoader The x4o language loader. - * @throws X4OLanguageLoaderException - * @see org.x4o.xml.lang.X4OLanguageModuleLoaderSibling#loadLanguageSibling(org.x4o.xml.lang.X4OLanguageLocal, org.x4o.xml.lang.X4OLanguageLoader) - */ - public void loadLanguageSibling(X4OLanguageLocal language,X4OLanguageLoader languageLoader) throws X4OLanguageLoaderException { - - // Load the meta language. - languageLoader.loadLanguage(language, META_LANGUAGE, META_LANGUAGE_VERSION); + @Override + public void loadLanguageSibling(X4OLanguageSession session, X4OLanguageLocal language, X4OLanguageLoader loader) throws X4OLanguageLoaderException { + loader.loadLanguage(session, language, META_LANGUAGE, META_LANGUAGE_VERSION); } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/AbstractX4OPhase.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/AbstractX4OPhase.java index 419ea93..2a06701 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/AbstractX4OPhase.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/AbstractX4OPhase.java @@ -22,10 +22,8 @@ */ package org.x4o.xml.lang.phase; -import java.util.ArrayList; -import java.util.List; - import org.x4o.xml.element.Element; +import org.x4o.xml.element.ElementException; import org.x4o.xml.lang.X4OLanguageSession; @@ -36,14 +34,11 @@ import org.x4o.xml.lang.X4OLanguageSession; * @version 1.0 Dec 31, 2008 */ public abstract class AbstractX4OPhase implements X4OPhase { - - protected List phaseListeners = null; /** * Creates the AbstractX4OPhaseHandler. */ public AbstractX4OPhase() { - phaseListeners = new ArrayList(3); } /** @@ -53,30 +48,6 @@ public abstract class AbstractX4OPhase implements X4OPhase { return false; } - /** - * Gets the phase listeners. - * @return The x4o phase listeners. - */ - public List getPhaseListeners() { - return phaseListeners; - } - - /** - * Adds a phase listener. - * @param listener The phase listener to add. - */ - public void addPhaseListener(X4OPhaseListener listener) { - phaseListeners.add(listener); - } - - /** - * Removed a phase listener. - * @param listener The phase listener to remove. - */ - public void removePhaseListener(X4OPhaseListener listener) { - phaseListeners.remove(listener); - } - /** * If returns true then this handler will run on all elements. * @return defaults to true. @@ -97,6 +68,17 @@ public abstract class AbstractX4OPhase implements X4OPhase { * @param elementLanguage The language to run phase for. * @throws X4OPhaseException when phase has error. */ - public void runPhase(X4OLanguageSession elementLanguage) throws X4OPhaseException { + public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { + } + + public void debugPhaseMessage(X4OLanguageSession languageSession, String message) throws X4OPhaseException { + if (!languageSession.hasX4ODebugWriter()) { + return; + } + try { + languageSession.getX4ODebugWriter().debugPhaseMessage(message,this.getClass()); + } catch (ElementException ee) { + throw new X4OPhaseException(this, ee); + } } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java index 15e2318..98d0289 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/DefaultX4OPhaseManager.java @@ -41,7 +41,7 @@ import org.x4o.xml.lang.X4OLanguageSessionLocal; public class DefaultX4OPhaseManager implements X4OPhaseManagerLocal { /** The X4OPhaseHandler */ - private List x4oPhases = null; + private final List x4oPhases; /** * Constructor. @@ -68,7 +68,7 @@ PHASE_ORDER = { *startupX4OPhase, */ public X4OPhase getPhase(String phaseName) { - for (X4OPhase phase:x4oPhases) { + for (X4OPhase phase : x4oPhases) { if (phase.getId().equals(phaseName)) { return phase; } @@ -78,7 +78,7 @@ PHASE_ORDER = { *startupX4OPhase, public List getPhaseKeys() { List result = new ArrayList(x4oPhases.size()); - for (X4OPhase phase:x4oPhases) { + for (X4OPhase phase : x4oPhases) { result.add(phase.getId()); } return result; @@ -97,7 +97,6 @@ PHASE_ORDER = { *startupX4OPhase, // throw new IllegalStateException("Can't add new phases after first phase is completed."); //} x4oPhases.add(phase); - } /** @@ -114,12 +113,12 @@ PHASE_ORDER = { *startupX4OPhase, */ public List getOrderedPhases(X4OPhaseType type) { List result = new ArrayList(x4oPhases.size()); - for (X4OPhase p:x4oPhases) { + for (X4OPhase p : x4oPhases) { if (p.getType().equals(type)) { result.add(p); } } - Collections.sort(result,new X4OPhaseComparator()); + Collections.sort(result, new X4OPhaseComparator()); return result; } @@ -127,13 +126,15 @@ PHASE_ORDER = { *startupX4OPhase, * Runs all the phases in the right order. * @throws X4OPhaseException When a running handlers throws one. */ - public void runPhases(X4OLanguageSession languageSession,X4OPhaseType type) throws X4OPhaseException { + public void runPhases(X4OLanguageSession languageSession, X4OPhaseType type) throws X4OPhaseException { + // convert to local for state changes + X4OLanguageSessionLocal languageSessionLocal = X4OLanguageSessionLocal.class.cast(languageSession); // sort for the order List x4oPhasesOrder = getOrderedPhases(type); // debug output - if (languageSession.getX4ODebugWriter()!=null) { + if (languageSession.getX4ODebugWriter() != null) { languageSession.getX4ODebugWriter().debugPhaseOrder(x4oPhasesOrder); } @@ -141,17 +142,17 @@ PHASE_ORDER = { *startupX4OPhase, String phaseStop = languageSession.getPhaseStop(); // run the phases in ordered order - for (X4OPhase phase:x4oPhasesOrder) { + for (X4OPhase phase : x4oPhasesOrder) { if (phaseSkip.contains(phase.getId())) { continue; // skip phase when requested by context } // debug output - ((X4OLanguageSessionLocal)languageSession).setPhaseCurrent(phase); + languageSessionLocal.setPhaseCurrent(phase); // run listeners - for (X4OPhaseListener l:phase.getPhaseListeners()) { + for (X4OPhaseListener l : languageSessionLocal.storePhaseListeners(phase.getId())) { l.preRunPhase(phase, languageSession); } @@ -161,15 +162,15 @@ PHASE_ORDER = { *startupX4OPhase, phase.runPhase(languageSession); // run the element phase if possible - executePhaseRoot(languageSession,phase); + executePhaseRoot(languageSession, phase); } finally { // run the listeners again - for (X4OPhaseListener l:phase.getPhaseListeners()) { + for (X4OPhaseListener l : languageSessionLocal.storePhaseListeners(phase.getId())) { l.endRunPhase(phase, languageSession); } } - if (phaseStop!=null && phaseStop.equals(phase.getId())) { + if (phaseStop != null && phaseStop.equals(phase.getId())) { return; // we are done } } @@ -188,8 +189,8 @@ PHASE_ORDER = { *startupX4OPhase, // sort for the order List x4oPhasesOrder = getOrderedPhases(type); - for (X4OPhase phase:x4oPhasesOrder) { - if (phase.getId().equals(p.getId())==false) { + for (X4OPhase phase : x4oPhasesOrder) { + if (phase.getId().equals(p.getId()) == false) { continue; // we start running all phases from specified phase } if (phaseSkip.contains(phase.getId())) { @@ -203,9 +204,9 @@ PHASE_ORDER = { *startupX4OPhase, phase.runPhase(languageSession); // run the element phase if possible - executePhaseRoot(languageSession,phase); + executePhaseRoot(languageSession, phase); - if (phaseStop!=null && phaseStop.equals(phase.getId())) { + if (phaseStop != null && phaseStop.equals(phase.getId())) { return; // we are done } } @@ -224,25 +225,25 @@ PHASE_ORDER = { *startupX4OPhase, if (phaseSkip.contains(X4OPhaseLanguageWrite.WRITE_RELEASE)) { releaseRequested = X4OPhaseLanguageWrite.WRITE_RELEASE; } - if (releaseRequested==null) { + if (releaseRequested == null) { return; // No manual release requested //throw new IllegalStateException("No manual release requested."); } - if (languageSession.getRootElement()==null) { + if (languageSession.getRootElement() == null) { return; // no root element , empty xml document ? } - if (languageSession.getRootElement().getElementClass()==null) { + if (languageSession.getRootElement().getElementClass() == null) { throw new IllegalStateException("Release phase has already been runned."); } X4OPhase h = null; - for (X4OPhase phase:x4oPhases) { + for (X4OPhase phase : x4oPhases) { if (phase.getId().equals(releaseRequested)) { h = phase; break; } } - if (h==null) { + if (h == null) { throw new IllegalStateException("No release phase found in manager to run."); } @@ -253,7 +254,7 @@ PHASE_ORDER = { *startupX4OPhase, h.runPhase(languageSession); // run the element phase if possible - executePhaseRoot(languageSession,h); + executePhaseRoot(languageSession, h); } class X4OPhaseComparator implements Comparator { @@ -265,7 +266,7 @@ PHASE_ORDER = { *startupX4OPhase, String pid = e1.getId(); String[] dpids = e2.getPhaseDependencies(); - for (int i=0;i getPhaseListeners(); - - /** - * Adds an X4OPhaseListener. - * @param listener The listener to add. - */ - void addPhaseListener(X4OPhaseListener listener); - - /** - * Removes an X4OPhaseListener. - * @param listener The listener to remove. - */ - void removePhaseListener(X4OPhaseListener listener); - /** * runPhase is called but should do nothig. * When elementPhase is enables x4o tries to merge all element phases so diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java index ecfb6e7..b554e5c 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageInit.java @@ -76,7 +76,7 @@ public class X4OPhaseLanguageInit { } public void runElementPhase(Element element) throws X4OPhaseException { } - public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { + public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { logger.finest("Run init start phase"); } }; @@ -100,11 +100,12 @@ public class X4OPhaseLanguageInit { } public void runElementPhase(Element element) throws X4OPhaseException { } - public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { + public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { try { - //debugPhaseMessage("Loading main language: "+elementLanguage.getLanguage(),this,elementLanguage); + debugPhaseMessage(languageSession, "Load main language: " + languageSession.getLanguage().getLanguageName()); X4OLanguageLoader loader = X4OLanguageClassLoader.newInstance(X4OLanguageLoader.class, languageSession.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader()); - loader.loadLanguage((X4OLanguageLocal)languageSession.getLanguage(),languageSession.getLanguage().getLanguageName(),languageSession.getLanguage().getLanguageVersion()); + X4OLanguageLocal language = (X4OLanguageLocal)languageSession.getLanguage(); + loader.loadLanguage(languageSession, language, language.getLanguageName(), language.getLanguageVersion()); if (languageSession.hasX4ODebugWriter()) { languageSession.getX4ODebugWriter().debugElementLanguageModules(languageSession); @@ -142,9 +143,10 @@ public class X4OPhaseLanguageInit { try { if (siblingLoaders.isEmpty()==false) { X4OLanguageLoader loader = X4OLanguageClassLoader.newInstance(X4OLanguageLoader.class, languageSession.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader()); + X4OLanguageLocal language = (X4OLanguageLocal)languageSession.getLanguage(); for (X4OLanguageModuleLoaderSibling siblingLoader:siblingLoaders) { - //debugPhaseMessage("Loading sibling langauge loader: "+siblingLoader,this,elementLanguage); - siblingLoader.loadLanguageSibling((X4OLanguageLocal)languageSession.getLanguage(), loader); + debugPhaseMessage(languageSession, "Loading sibling langauge loader: " + siblingLoader); + siblingLoader.loadLanguageSibling(languageSession, language, loader); } if (languageSession.hasX4ODebugWriter()) { languageSession.getX4ODebugWriter().debugElementLanguageModules(languageSession); @@ -175,7 +177,7 @@ public class X4OPhaseLanguageInit { } public void runElementPhase(Element element) throws X4OPhaseException { } - public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { + public void runPhase(X4OLanguageSession languageSession) throws X4OPhaseException { logger.finest("Run init end phase"); } }; diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java index edcb7e4..64f6281 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/phase/X4OPhaseLanguageRead.java @@ -32,7 +32,6 @@ import java.util.logging.Logger; import org.x4o.xml.conv.ObjectConverterException; import org.x4o.xml.element.Element; import org.x4o.xml.element.ElementNamespaceAttribute; -import org.x4o.xml.io.X4ODebugWriter; import org.x4o.xml.element.ElementAttributeValueParser; import org.x4o.xml.element.ElementBindingHandler; import org.x4o.xml.element.ElementClassAttribute; @@ -44,8 +43,6 @@ import org.x4o.xml.element.ElementNamespace; import org.x4o.xml.lang.X4OLanguageModule; import org.x4o.xml.lang.X4OLanguageSession; import org.x4o.xml.lang.X4OLanguageClassLoader; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; /** * Factory which can create X4OPhaseHandlers for all the predefined phases used in default x4o language parsing. @@ -113,16 +110,6 @@ public class X4OPhaseLanguageRead { // We are done } - private void debugPhaseMessage(String message,X4OPhase phaseHandler,X4OLanguageSession languageSession) throws X4OPhaseException { - if (languageSession.hasX4ODebugWriter()) { - try { - languageSession.getX4ODebugWriter().debugPhaseMessage(message,phaseHandler.getClass()); - } catch (ElementException ee) { - throw new X4OPhaseException(phaseHandler,ee); - } - } - } - /** * Creates the startX4OPhase which is a empty meta phase. */ @@ -431,7 +418,7 @@ public class X4OPhaseLanguageRead { class X4OPhaseReadRunDirty extends AbstractX4OPhase { private X4OPhaseManager phaseManager = null; public X4OPhaseReadRunDirty(X4OPhaseManager phaseManager) { - this.phaseManager=phaseManager; + this.phaseManager = phaseManager; } public X4OPhaseType getType() { return X4OPhaseType.XML_READ; @@ -447,9 +434,9 @@ public class X4OPhaseLanguageRead { if (dirtyElements.isEmpty()) { return; } - debugPhaseMessage("Dirty elements: "+dirtyElements.size(), this,element.getLanguageSession()); + debugPhaseMessage(element.getLanguageSession(), "Dirty elements: " + dirtyElements.size()); X4OPhase p = phaseManager.getPhase(READ_BEGIN); - for (Element e:dirtyElements) { + for (Element e : dirtyElements) { phaseManager.runPhasesForElement(e,getType(), p); } element.getLanguageSession().getDirtyElements().clear(); @@ -462,7 +449,7 @@ public class X4OPhaseLanguageRead { class X4OPhaseReadRunDirtyLast extends AbstractX4OPhase { private X4OPhaseManager phaseManager = null; public X4OPhaseReadRunDirtyLast(X4OPhaseManager phaseManager) { - this.phaseManager=phaseManager; + this.phaseManager = phaseManager; } public X4OPhaseType getType() { return X4OPhaseType.XML_READ; @@ -478,9 +465,9 @@ public class X4OPhaseLanguageRead { if (dirtyElements.isEmpty()) { return; } - debugPhaseMessage("Dirty elements last: "+dirtyElements.size(), this,element.getLanguageSession()); + debugPhaseMessage(element.getLanguageSession(), "Dirty elements last: " + dirtyElements.size()); X4OPhase p = phaseManager.getPhase(READ_BEGIN); - for (Element e:dirtyElements) { + for (Element e : dirtyElements) { phaseManager.runPhasesForElement(e,getType(), p); } element.getLanguageSession().getDirtyElements().clear(); @@ -644,7 +631,6 @@ public class X4OPhaseLanguageRead { // print the properties and classes for this language/config if (languageSession.hasX4ODebugWriter()) { try { - //languageSession.getX4ODebugWriter().debugLanguageProperties(languageSession); languageSession.getX4ODebugWriter().debugLanguageDefaultClasses(languageSession); } catch (ElementException e) { throw new X4OPhaseException(this,e); @@ -659,18 +645,13 @@ public class X4OPhaseLanguageRead { */ public X4OPhase releasePhase() { - // for debug output + // for debug output TODO: redo release counters + /* class ReleasePhaseListener implements X4OPhaseListener { private int elementsReleased = 0; - /** - * @see org.x4o.xml.lang.phase.X4OPhaseListener#preRunPhase(org.x4o.xml.lang.phase.X4OPhase, org.x4o.xml.lang.X4OLanguageSession) - */ public void preRunPhase(X4OPhase phase,X4OLanguageSession languageSession) throws X4OPhaseException { elementsReleased=0; } - /** - * @see org.x4o.xml.lang.phase.X4OPhaseListener#endRunPhase(org.x4o.xml.lang.phase.X4OPhase, org.x4o.xml.lang.X4OLanguageSession) - */ public void endRunPhase(X4OPhase phase,X4OLanguageSession languageSession) throws X4OPhaseException { if (languageSession.hasX4ODebugWriter()==false) { return; @@ -689,8 +670,9 @@ public class X4OPhaseLanguageRead { elementsReleased++; } } + */ - final ReleasePhaseListener releaseCounter = new ReleasePhaseListener(); + //final ReleasePhaseListener releaseCounter = new ReleasePhaseListener(); X4OPhase result = new AbstractX4OPhase() { public X4OPhaseType getType() { return X4OPhaseType.XML_READ; @@ -708,12 +690,12 @@ public class X4OPhaseLanguageRead { element.release(); } catch (ElementException e) { throw new X4OPhaseException(this,e); - } finally { - releaseCounter.addReleasedElement(); - } + }// finally { + // releaseCounter.addReleasedElement(); + //} } }; - result.addPhaseListener(releaseCounter); + //result.addPhaseListener(releaseCounter); return result; } } diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskCommandLine.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskCommandLine.java index 1efb69d..6c950cd 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskCommandLine.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskCommandLine.java @@ -38,7 +38,6 @@ import org.x4o.xml.X4ODriverManager; import org.x4o.xml.lang.X4OLanguage; import org.x4o.xml.lang.task.X4OLanguageTask; import org.x4o.xml.lang.task.X4OLanguageTaskException; -import org.x4o.xml.lang.task.X4OLanguageTaskExecutor; /** * X4OLanguageTaskCommandLine runs a language task from the command line. @@ -87,9 +86,8 @@ public class X4OTaskCommandLine { } private void executeLanguageTask() throws X4OLanguageTaskException { - X4OLanguageTaskExecutor taskExecutor = task.createTaskExecutor(config); - X4OLanguage language = driver.createLanguage(); - taskExecutor.execute(language); + X4OLanguage language = driver.createLanguage(); // TODO: also add support for version select + X4OTaskRunner.runTaskLanguage(task, language, config); } private void systemErrExit(String message) { diff --git a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskRunner.java b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskRunner.java index 6f11075..f1fab44 100644 --- a/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskRunner.java +++ b/nx01-x4o-driver/src/main/java/org/x4o/xml/lang/task/run/X4OTaskRunner.java @@ -27,38 +27,53 @@ import java.util.List; import org.x4o.sax3.io.SAX3PropertyConfig; import org.x4o.xml.X4ODriver; import org.x4o.xml.X4ODriverManager; +import org.x4o.xml.io.X4OConnectionException; import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageLocal; +import org.x4o.xml.lang.X4OLanguageSession; +import org.x4o.xml.lang.phase.X4OPhaseException; import org.x4o.xml.lang.task.X4OLanguageTask; import org.x4o.xml.lang.task.X4OLanguageTaskException; import org.x4o.xml.lang.task.X4OLanguageTaskExecutor; /** - * X4OTaskRunner finds all x4o objects and configs and then run the x4o langauge task. + * X4OTaskRunner finds all x4o objects and configs and then run the x4o langauge + * task. * * @author Willem Cazander * @version 1.0 Aug 30, 2013 */ public final class X4OTaskRunner { - - static public void runTask(String languageName,String languageVersion,String taskId,List props) throws X4OLanguageTaskException { + + static public void runTask(String languageName, String languageVersion, String taskId, List props) throws X4OLanguageTaskException { X4ODriver driver = X4ODriverManager.getX4ODriver(languageName); X4OLanguageTask task = driver.getLanguageTask(taskId); - if (task==null) { - throw new NullPointerException("Could not find x4o task with id; "+taskId); + if (task == null) { + throw new NullPointerException("Could not find x4o task with id; " + taskId); } SAX3PropertyConfig config = task.createTaskConfig(); - for (X4OTaskProperty prop:props) { + for (X4OTaskProperty prop : props) { String key = prop.getKey(); String value = prop.getValue(); config.setPropertyParsedValue(key, value); } - X4OLanguageTaskExecutor taskExecutor = task.createTaskExecutor(config); X4OLanguage language = null; - if (languageVersion==null) { + if (languageVersion == null) { language = driver.createLanguage(); } else { language = driver.createLanguage(languageVersion); } + runTaskLanguage(task, language, config); + } + + static public void runTaskLanguage(X4OLanguageTask task, X4OLanguage language, SAX3PropertyConfig config) throws X4OLanguageTaskException { + X4OLanguageTaskExecutor taskExecutor = task.createTaskExecutor(config); + // Run init to load the language, which is 'normally' in read or write for deep recursief debugging support. + try (X4OLanguageSession session = language.createLanguageSession()) { + X4OLanguageLocal.class.cast(language).init(session); + } catch (X4OConnectionException | X4OPhaseException e) { + throw new X4OLanguageTaskException(config, e.getMessage(), e); + } taskExecutor.execute(language); } } diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/X4ODriverManagerTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/X4ODriverManagerTest.java index 26aea3a..2d14abe 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/X4ODriverManagerTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/X4ODriverManagerTest.java @@ -26,6 +26,10 @@ import java.util.List; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageLocal; +import org.x4o.xml.lang.X4OLanguageSession; +import org.x4o.xml.lang.X4OLanguageSessionLocal; /** * X4ODriverManager @@ -86,12 +90,13 @@ public class X4ODriverManagerTest { @Test public void testLanguageVersionNonExcisting() throws Exception { - String language = "test"; - String version = "99.9"; + String languageTest = "test"; + String versionTest = "99.9"; Throwable e = null; try { - X4ODriver driver = X4ODriverManager.getX4ODriver(language); - driver.createLanguage(version).createLanguageSession(); + X4ODriver driver = X4ODriverManager.getX4ODriver(languageTest); + X4OLanguage language = driver.createLanguage(versionTest); + X4OLanguageLocal.class.cast(language).init(language.createLanguageSession()); } catch (Throwable catchE) { e = catchE; } diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java index b3714c7..d5e44b5 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4ODebugWriterTest.java @@ -28,13 +28,18 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.io.OutputStream; import java.nio.charset.Charset; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.x4o.sax3.SAX3WriterXml; +import org.x4o.sax3.io.ContentCloseable; +import org.x4o.sax3.io.ContentWriter; import org.x4o.xml.X4ODriver; import org.x4o.xml.io.DefaultX4OReader; import org.x4o.xml.io.DefaultX4OWriter; +import org.x4o.xml.io.X4ODebugWriter; import org.x4o.xml.io.X4OReader; import org.x4o.xml.io.X4OWriter; import org.x4o.xml.test.TestDriver; @@ -77,8 +82,13 @@ public class X4ODebugWriterTest { File debugFile = createDebugFile(); X4ODriver driver = TestDriver.getInstance(); X4OReader reader = driver.createReader(); - reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_STREAM, new FileOutputStream(debugFile)); - reader.readResource("tests/attributes/test-bean.xml"); + try (ContentWriter debugHandler = new SAX3WriterXml(new FileOutputStream(debugFile))) { + try (ContentCloseable docClosure = debugHandler.startDocumentClosure()) { + debugHandler.startPrefixMapping(X4ODebugWriter.DEBUG_URI_NS, X4ODebugWriter.DEBUG_URI); + reader.setProperty(DefaultX4OReader.DEBUG_OUTPUT_HANDLER, debugHandler); + reader.readResource("tests/attributes/test-bean.xml"); + } + } Assertions.assertTrue(debugFile.exists(), "Debug file does not exists."); String debug = readFile(debugFile); @@ -86,8 +96,8 @@ public class X4ODebugWriterTest { Assertions.assertFalse(debug.length()==0, "no debug content"); Assertions.assertTrue(debug.length()>20, "debug content to small"); - System.out.println("=================== Reader Output ======================"); - System.out.println(debug); + //System.out.println("=================== Reader Output ======================"); + //System.out.println(debug); debugFile.delete(); } @@ -100,8 +110,10 @@ public class X4ODebugWriterTest { X4OWriter writer = driver.createWriter(); TestObjectRoot object = reader.readResource("tests/attributes/test-bean.xml"); - writer.setProperty(DefaultX4OWriter.DEBUG_OUTPUT_STREAM, new FileOutputStream(debugFile)); - writer.writeFile(object, writeFile); + try (OutputStream out = new FileOutputStream(debugFile)) { + writer.setProperty(DefaultX4OWriter.DEBUG_OUTPUT_STREAM, out); + writer.writeFile(object, writeFile); + } Assertions.assertTrue(debugFile.exists(), "Debug file does not exists."); String debug = readFile(debugFile); diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4OEntityResolverTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4OEntityResolverTest.java index a3c9e2d..b42e998 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4OEntityResolverTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/core/X4OEntityResolverTest.java @@ -31,6 +31,8 @@ import org.x4o.xml.X4ODriver; import org.x4o.xml.eld.CelDriver; import org.x4o.xml.io.DefaultX4OReader; import org.x4o.xml.io.X4OEntityResolver; +import org.x4o.xml.lang.X4OLanguage; +import org.x4o.xml.lang.X4OLanguageLocal; import org.x4o.xml.lang.X4OLanguageSession; import org.x4o.xml.test.TestDriver; import org.x4o.xml.test.models.TestObjectRoot; @@ -62,14 +64,19 @@ public class X4OEntityResolverTest { @Test public void testResolve() throws Exception { X4ODriver driver = new CelDriver(); - X4OEntityResolver resolver = new X4OEntityResolver(driver.createLanguage().createLanguageSession(),DefaultX4OReader.DEFAULT_PROPERTY_CONFIG); - InputSource input = resolver.resolveEntity("","http://cel.x4o.org/xml/ns/cel-root-1.0.xsd"); - Assertions.assertNotNull(input); + X4OLanguage language = driver.createLanguage(); + try (X4OLanguageSession session = language.createLanguageSession()) { + X4OLanguageLocal.class.cast(language).init(session); + X4OEntityResolver resolver = new X4OEntityResolver(session, DefaultX4OReader.DEFAULT_PROPERTY_CONFIG); + InputSource input = resolver.resolveEntity("","http://cel.x4o.org/xml/ns/cel-root-1.0.xsd"); + Assertions.assertNotNull(input); + } } @Test public void testResolveMissing() throws Exception { X4ODriver driver = new TestDriver(); + // NOTE: this session is not inited, see fix code above. X4OEntityResolver resolver = new X4OEntityResolver(driver.createLanguage().createLanguageSession(),DefaultX4OReader.DEFAULT_PROPERTY_CONFIG); Exception e = null; try { diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/doc/X4OWriteLanguageDocExecutorTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/doc/X4OWriteLanguageDocExecutorTest.java index 9b3887a..461a754 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/doc/X4OWriteLanguageDocExecutorTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/doc/X4OWriteLanguageDocExecutorTest.java @@ -32,6 +32,7 @@ import org.x4o.xml.X4ODriverManager; import org.x4o.xml.eld.CelDriver; import org.x4o.xml.eld.EldDriver; import org.x4o.xml.lang.task.X4OLanguageTask; +import org.x4o.xml.lang.task.run.X4OTaskRunner; import org.x4o.xml.test.TestDriver; /** @@ -56,7 +57,7 @@ public class X4OWriteLanguageDocExecutorTest { SAX3PropertyConfig config = task.createTaskConfig(); File outputPath = createOutputPath(outputPostfix); config.setProperty(EldDocWriter.OUTPUT_PATH,outputPath); - task.createTaskExecutor(config).execute(driver.createLanguage()); + X4OTaskRunner.runTaskLanguage(task, driver.createLanguage(), config); Assertions.assertTrue(outputPath.exists()); Assertions.assertTrue(outputPath.list()!=null); Assertions.assertTrue(outputPath.list().length>2); diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java index c2dbf8f..1f9a3f2 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/eld/xsd/EldXsdLanguageTaskTest.java @@ -37,6 +37,7 @@ import org.x4o.xml.eld.EldDriver; import org.x4o.xml.eld.EldModuleLoaderCore; import org.x4o.xml.io.X4OWriterTest; import org.x4o.xml.lang.task.X4OLanguageTask; +import org.x4o.xml.lang.task.run.X4OTaskRunner; import org.x4o.xml.test.swixml.SwiXmlDriver; /** @@ -71,7 +72,7 @@ public class EldXsdLanguageTaskTest { config.setProperty(key, value); } } - task.createTaskExecutor(config).execute(driver.createLanguage()); + X4OTaskRunner.runTaskLanguage(task, driver.createLanguage(), config); Assertions.assertTrue(outputPath.exists()); Assertions.assertTrue(outputPath.list()!=null); return outputPath; diff --git a/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/DefaultX4OLanguageLoaderTest.java b/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/DefaultX4OLanguageLoaderTest.java index 5a4a34a..03b002f 100644 --- a/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/DefaultX4OLanguageLoaderTest.java +++ b/nx01-x4o-driver/src/test/java/org/x4o/xml/lang/DefaultX4OLanguageLoaderTest.java @@ -42,13 +42,16 @@ import org.x4o.xml.test.models.TestObjectRoot; public class DefaultX4OLanguageLoaderTest { static X4ODriver driver; - static X4OLanguage language; + static X4OLanguageLocal language; + static X4OLanguageSession session; static DefaultX4OLanguageLoader loader; @BeforeAll public static void setUp() throws Exception { driver = TestDriver.getInstance(); - language = driver.createLanguage(); + language = (X4OLanguageLocal)driver.createLanguage(); + session = language.createLanguageSession(); + language.init(session); loader = (DefaultX4OLanguageLoader)language.getLanguageConfiguration().getDefaultLanguageLoader().newInstance(); } @@ -56,7 +59,7 @@ public class DefaultX4OLanguageLoaderTest { public void testLoadingDuplicate() throws Exception { Exception e = null; try { - loader.loadLanguage((X4OLanguageLocal)language, "test", "1.0"); + loader.loadLanguage(session, language, "test", "1.0"); } catch (Exception ee) { e = ee; } diff --git a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/AbstractContentWriterHandler.java b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/AbstractContentWriterHandler.java index eff177a..c7c0e2a 100644 --- a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/AbstractContentWriterHandler.java +++ b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/AbstractContentWriterHandler.java @@ -57,6 +57,7 @@ public class AbstractContentWriterHandler implements ContentHandler, Closeable { private final SAX3PropertyConfig propertyConfig; private final Writer out; + private boolean started = false; private int indent = 0; private Map prefixMapping = null; private List printedMappings = null; @@ -130,6 +131,10 @@ public class AbstractContentWriterHandler implements ContentHandler, Closeable { * @see org.xml.sax.ContentHandler#startDocument() */ public void startDocument() throws SAXException { + if (started) { + throw new SAXException("Can start document only once."); + } + started = true; indent = 0; write(SAX3XMLConstants.getDocumentDeclaration(getPropertyConfig().getPropertyString(OUTPUT_ENCODING))); prologWriteLicence(); @@ -479,7 +484,7 @@ public class AbstractContentWriterHandler implements ContentHandler, Closeable { public void endPrefixMapping(String prefix) throws SAXException { Set> s = prefixMapping.entrySet(); String uri = null; - for (Map.Entry e:s) { + for (Map.Entry e : s) { if (e.getValue() == null) { continue; // way ? } diff --git a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/ContentWriter.java b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/ContentWriter.java index e090eae..e7ab7e3 100644 --- a/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/ContentWriter.java +++ b/nx01-x4o-sax3/src/main/java/org/x4o/sax3/io/ContentWriter.java @@ -23,6 +23,7 @@ package org.x4o.sax3.io; import java.io.Closeable; +import java.io.IOException; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; @@ -38,6 +39,23 @@ import org.xml.sax.ext.LexicalHandler; */ public interface ContentWriter extends ContentHandler, LexicalHandler, Closeable { + /** + * Wrap startDocument and endDocument in a body closable code block. + * + * @return An closable resource block reference. + * @throws SAXException When IOException is thrown. + */ + default ContentCloseable startDocumentClosure() throws SAXException { + startDocument(); + return () -> { + try { + endDocument(); + } catch (SAXException e) { + throw new IOException(e); + } + }; + } + /** * Starts and ends an element in one call. * @param uri The uri of the element.