From commits-return-6974-archive-asf-public=cust-asf.ponee.io@zookeeper.apache.org Mon Sep 3 11:58:31 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 970C218078F for ; Mon, 3 Sep 2018 11:58:29 +0200 (CEST) Received: (qmail 34925 invoked by uid 500); 3 Sep 2018 09:58:28 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 34737 invoked by uid 99); 3 Sep 2018 09:58:28 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Sep 2018 09:58:28 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5A327E1113; Mon, 3 Sep 2018 09:58:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: andor@apache.org To: commits@zookeeper.apache.org Date: Mon, 03 Sep 2018 09:58:32 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [5/6] zookeeper git commit: ZOOKEEPER-3080: MAVEN MIGRATION - Step 1.5 - move jute dir http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/CppGenerator.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/CppGenerator.java b/src/java/main/org/apache/jute/compiler/CppGenerator.java deleted file mode 100644 index 9b12278..0000000 --- a/src/java/main/org/apache/jute/compiler/CppGenerator.java +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -import java.util.ArrayList; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.Iterator; - -/** - * C++ Code generator front-end for Hadoop record I/O. - */ -class CppGenerator { - private String mName; - private ArrayList mInclFiles; - private ArrayList mRecList; - private final File outputDirectory; - - /** Creates a new instance of CppGenerator - * - * @param name possibly full pathname to the file - * @param ilist included files (as JFile) - * @param rlist List of records defined within this file - * @param outputDirectory - */ - CppGenerator(String name, ArrayList ilist, ArrayList rlist, - File outputDirectory) - { - this.outputDirectory = outputDirectory; - mName = (new File(name)).getName(); - mInclFiles = ilist; - mRecList = rlist; - } - - /** - * Generate C++ code. This method only creates the requested file(s) - * and spits-out file-level elements (such as include statements etc.) - * record-level code is generated by JRecord. - */ - void genCode() throws IOException { - if (!outputDirectory.exists()) { - if (!outputDirectory.mkdirs()) { - throw new IOException("unable to create output directory " - + outputDirectory); - } - } - - try (FileWriter cc = new FileWriter(new File(outputDirectory, mName + ".cc")); - FileWriter hh = new FileWriter(new File(outputDirectory, mName + ".hh")); - ) { - hh.write("/**\n"); - hh.write("* Licensed to the Apache Software Foundation (ASF) under one\n"); - hh.write("* or more contributor license agreements. See the NOTICE file\n"); - hh.write("* distributed with this work for additional information\n"); - hh.write("* regarding copyright ownership. The ASF licenses this file\n"); - hh.write("* to you under the Apache License, Version 2.0 (the\n"); - hh.write("* \"License\"); you may not use this file except in compliance\n"); - hh.write("* with the License. You may obtain a copy of the License at\n"); - hh.write("*\n"); - hh.write("* http://www.apache.org/licenses/LICENSE-2.0\n"); - hh.write("*\n"); - hh.write("* Unless required by applicable law or agreed to in writing, software\n"); - hh.write("* distributed under the License is distributed on an \"AS IS\" BASIS,\n"); - hh.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); - hh.write("* See the License for the specific language governing permissions and\n"); - hh.write("* limitations under the License.\n"); - hh.write("*/\n"); - hh.write("\n"); - - cc.write("/**\n"); - cc.write("* Licensed to the Apache Software Foundation (ASF) under one\n"); - cc.write("* or more contributor license agreements. See the NOTICE file\n"); - cc.write("* distributed with this work for additional information\n"); - cc.write("* regarding copyright ownership. The ASF licenses this file\n"); - cc.write("* to you under the Apache License, Version 2.0 (the\n"); - cc.write("* \"License\"); you may not use this file except in compliance\n"); - cc.write("* with the License. You may obtain a copy of the License at\n"); - cc.write("*\n"); - cc.write("* http://www.apache.org/licenses/LICENSE-2.0\n"); - cc.write("*\n"); - cc.write("* Unless required by applicable law or agreed to in writing, software\n"); - cc.write("* distributed under the License is distributed on an \"AS IS\" BASIS,\n"); - cc.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); - cc.write("* See the License for the specific language governing permissions and\n"); - cc.write("* limitations under the License.\n"); - cc.write("*/\n"); - cc.write("\n"); - - hh.write("#ifndef __" + mName.toUpperCase().replace('.', '_') + "__\n"); - hh.write("#define __" + mName.toUpperCase().replace('.', '_') + "__\n"); - - hh.write("#include \"recordio.hh\"\n"); - for (Iterator i = mInclFiles.iterator(); i.hasNext(); ) { - JFile f = i.next(); - hh.write("#include \"" + f.getName() + ".hh\"\n"); - } - cc.write("#include \"" + mName + ".hh\"\n"); - - for (Iterator i = mRecList.iterator(); i.hasNext(); ) { - JRecord jr = i.next(); - jr.genCppCode(hh, cc); - } - - hh.write("#endif //" + mName.toUpperCase().replace('.', '_') + "__\n"); - } - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JBoolean.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JBoolean.java b/src/java/main/org/apache/jute/compiler/JBoolean.java deleted file mode 100644 index b45b161..0000000 --- a/src/java/main/org/apache/jute/compiler/JBoolean.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JBoolean extends JType { - - /** Creates a new instance of JBoolean */ - public JBoolean() { - super("int32_t", "bool", "bool", "boolean", "Bool", "Boolean", "bool", "toBoolean"); - } - - public String getSignature() { - return "z"; - } - - public String genJavaCompareTo(String fname) { - return " ret = ("+fname+" == peer."+fname+")? 0 : ("+fname+"?1:-1);\n"; - } - - public String genJavaHashCode(String fname) { - return " ret = ("+fname+")?0:1;\n"; - } - - String genCsharpHashCode(String fname) { - return " ret = ("+capitalize(fname)+")?0:1;\n"; - } - - String genCsharpCompareTo(String name) { - return " ret = ("+capitalize(name)+" == peer."+capitalize(name)+")? 0 : ("+capitalize(name)+"?1:-1);\n"; - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JBuffer.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JBuffer.java b/src/java/main/org/apache/jute/compiler/JBuffer.java deleted file mode 100644 index b2be5bd..0000000 --- a/src/java/main/org/apache/jute/compiler/JBuffer.java +++ /dev/null @@ -1,106 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JBuffer extends JCompType { - - /** Creates a new instance of JBuffer */ - public JBuffer() { - super("struct buffer", " ::std::string", "byte[]", "byte[]", "Buffer", "byte[]", "byte[]"); - } - - public String genCppGetSet(String fname, int fIdx) { - String cgetFunc = " virtual const "+getCppType()+"& get"+fname+"() const {\n"; - cgetFunc += " return m"+fname+";\n"; - cgetFunc += " }\n"; - String getFunc = " virtual "+getCppType()+"& get"+fname+"() {\n"; - getFunc += " bs_.set("+fIdx+");return m"+fname+";\n"; - getFunc += " }\n"; - return cgetFunc + getFunc; - } - - public String getSignature() { - return "B"; - } - - public String genJavaReadWrapper(String fname, String tag, boolean decl) { - String ret = ""; - if (decl) { - ret = " byte[] "+fname+";\n"; - } - return ret + " "+fname+"=a_.readBuffer(\""+tag+"\");\n"; - } - - public String genJavaWriteWrapper(String fname, String tag) { - return " a_.writeBuffer("+fname+",\""+tag+"\");\n"; - } - - public String genJavaCompareTo(String fname, String other) { - StringBuilder sb = new StringBuilder(); - sb.append(" {\n"); - sb.append(" byte[] my = "+fname+";\n"); - sb.append(" byte[] ur = "+other+";\n"); - sb.append(" ret = org.apache.jute.Utils.compareBytes(my,0,my.length,ur,0,ur.length);\n"); - sb.append(" }\n"); - return sb.toString(); - } - - public String genJavaCompareTo(String fname) { - return genJavaCompareTo(fname, "peer."+fname); - } - public String genJavaCompareToWrapper(String fname, String other) { - return " "+genJavaCompareTo(fname, other); - } - - public String genJavaEquals(String fname, String peer) { - return " ret = org.apache.jute.Utils.bufEquals("+fname+","+peer+");\n"; - } - - public String genJavaHashCode(String fname) { - return " ret = java.util.Arrays.toString("+fname+").hashCode();\n"; - } - - public String genJavaSlurpBytes(String b, String s, String l) { - StringBuilder sb = new StringBuilder(); - sb.append(" {\n"); - sb.append(" int i = org.apache.jute.Utils.readVInt("+b+", "+s+");\n"); - sb.append(" int z = WritableUtils.getVIntSize(i);\n"); - sb.append(" "+s+" += z+i; "+l+" -= (z+i);\n"); - sb.append(" }\n"); - return sb.toString(); - } - - public String genJavaCompareBytes() { - StringBuilder sb = new StringBuilder(); - sb.append(" {\n"); - sb.append(" int i1 = org.apache.jute.Utils.readVInt(b1, s1);\n"); - sb.append(" int i2 = org.apache.jute.Utils.readVInt(b2, s2);\n"); - sb.append(" int z1 = WritableUtils.getVIntSize(i1);\n"); - sb.append(" int z2 = WritableUtils.getVIntSize(i2);\n"); - sb.append(" s1+=z1; s2+=z2; l1-=z1; l2-=z2;\n"); - sb.append(" int r1 = org.apache.jute.Utils.compareBytes(b1,s1,l1,b2,s2,l2);\n"); - sb.append(" if (r1 != 0) { return (r1<0)?-1:0; }\n"); - sb.append(" s1+=i1; s2+=i2; l1-=i1; l1-=i2;\n"); - sb.append(" }\n"); - return sb.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JByte.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JByte.java b/src/java/main/org/apache/jute/compiler/JByte.java deleted file mode 100644 index 4b1cea4..0000000 --- a/src/java/main/org/apache/jute/compiler/JByte.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JByte extends JType { - - /** Creates a new instance of JByte */ - public JByte() { - super("char", "int8_t", "byte", "byte", "Byte", "Byte", "byte", "toByte"); - } - - public String getSignature() { - return "b"; - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JCompType.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JCompType.java b/src/java/main/org/apache/jute/compiler/JCompType.java deleted file mode 100644 index d98658f..0000000 --- a/src/java/main/org/apache/jute/compiler/JCompType.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * Abstract base class for all the "compound" types such as ustring, - * buffer, vector, map, and record. - */ -abstract class JCompType extends JType { - - /** Creates a new instance of JCompType */ - JCompType(String cType, String cppType, String csharpType, String javaType, String suffix, String wrapper, String csharpWrapper) { - super(cType, cppType, csharpType, javaType, suffix, wrapper, csharpWrapper, null); - } - - String genCppGetSet(String fname, int fIdx) { - String cgetFunc = " virtual const "+getCppType()+"& get"+fname+"() const {\n"; - cgetFunc += " return m"+fname+";\n"; - cgetFunc += " }\n"; - String getFunc = " virtual "+getCppType()+"& get"+fname+"() {\n"; - getFunc += " bs_.set("+fIdx+");return m"+fname+";\n"; - getFunc += " }\n"; - return cgetFunc + getFunc; - } - - String genJavaCompareTo(String fname) { - return " ret = "+fname+".compareTo(peer."+fname+");\n"; - } - - String genJavaEquals(String fname, String peer) { - return " ret = "+fname+".equals("+peer+");\n"; - } - - String genJavaHashCode(String fname) { - return " ret = "+fname+".hashCode();\n"; - } - - String genCsharpHashCode(String fname) { - return " ret = "+capitalize(fname)+".GetHashCode();\n"; - } - - String genCsharpEquals(String name, String peer) { - String[] peerSplit = peer.split("\\."); - return " ret = "+capitalize(name)+".Equals("+peerSplit[0] + "." + capitalize(peerSplit[1]) + ");\n"; - } - - String genCsharpCompareTo(String name) { - return " ret = "+capitalize(name)+".CompareTo(peer."+capitalize(name)+");\n"; - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JDouble.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JDouble.java b/src/java/main/org/apache/jute/compiler/JDouble.java deleted file mode 100644 index 21f9cc8..0000000 --- a/src/java/main/org/apache/jute/compiler/JDouble.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JDouble extends JType { - - /** Creates a new instance of JDouble */ - public JDouble() { - super("double", "double", "double", "double", "Double", "Double", "double", "toDouble"); - } - - public String getSignature() { - return "d"; - } - - public String genJavaHashCode(String fname) { - String tmp = "Double.doubleToLongBits("+fname+")"; - return " ret = (int)("+tmp+"^("+tmp+">>>32));\n"; - } - -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JField.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JField.java b/src/java/main/org/apache/jute/compiler/JField.java deleted file mode 100644 index 50f9fc9..0000000 --- a/src/java/main/org/apache/jute/compiler/JField.java +++ /dev/null @@ -1,140 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JField { - private JType mType; - private String mName; - /** - * Creates a new instance of JField - */ - public JField(JType type, String name) { - mType = type; - mName = name; - } - - public String getSignature() { - return mType.getSignature(); - } - - public String genCppDecl() { - return mType.genCppDecl(mName); - } - - public String genCDecl() { - return mType.genCDecl(mName); - } - - public String genCsharpDecl() { - return mType.genCsharpDecl(mName); - } - - public String genCsharpConstructorParam(String fname) { - return mType.genCsharpConstructorParam(fname); - } - - public String genJavaDecl() { - return mType.genJavaDecl(mName); - } - - public String genJavaConstructorParam(String fname) { - return mType.genJavaConstructorParam(fname); - } - - public String getName() { - return mName; - } - - public String getCsharpName() { - return "Id".equals(mName) ? "ZKId" : mName; - } - - public String getTag() { - return mName; - } - - public JType getType() { - return mType; - } - - public String genCppGetSet(int fIdx) { - return mType.genCppGetSet(mName, fIdx); - } - - public String genCsharpConstructorSet(String fname) { - return mType.genCsharpConstructorSet(mName, fname); - } - - public String genCsharpGetSet(int fIdx) { - return mType.genCsharpGetSet(getCsharpName(), fIdx); - } - - public String genCsharpWriteMethodName() { - return mType.genCsharpWriteMethod(getCsharpName(), getTag()); - } - - public String genCsharpReadMethodName() { - return mType.genCsharpReadMethod(getCsharpName(), getTag()); - } - - public String genCsharpCompareTo() { - return mType.genCsharpCompareTo(getCsharpName()); - } - - public String genCsharpEquals() { - return mType.genCsharpEquals(getCsharpName(), "peer."+getCsharpName()); - } - - public String genCsharpHashCode() { - return mType.genCsharpHashCode(getCsharpName()); - } - - - public String genJavaGetSet(int fIdx) { - return mType.genJavaGetSet(mName, fIdx); - } - - public String genJavaWriteMethodName() { - return mType.genJavaWriteMethod(getName(), getTag()); - } - - public String genJavaReadMethodName() { - return mType.genJavaReadMethod(getName(), getTag()); - } - - public String genJavaCompareTo() { - return mType.genJavaCompareTo(getName()); - } - - public String genJavaEquals() { - return mType.genJavaEquals(getName(), "peer."+getName()); - } - - public String genJavaHashCode() { - return mType.genJavaHashCode(getName()); - } - - public String genJavaConstructorSet(String fname) { - return mType.genJavaConstructorSet(mName, fname); - } - -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JFile.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JFile.java b/src/java/main/org/apache/jute/compiler/JFile.java deleted file mode 100644 index e5b0ba3..0000000 --- a/src/java/main/org/apache/jute/compiler/JFile.java +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; - -/** - * Container for the Hadoop Record DDL. - * The main components of the file are filename, list of included files, - * and records defined in that file. - * - */ -public class JFile { - - private String mName; - private ArrayList mInclFiles; - private ArrayList mRecords; - - /** Creates a new instance of JFile - * - * @param name possibly full pathname to the file - * @param inclFiles included files (as JFile) - * @param recList List of records defined within this file - */ - public JFile(String name, ArrayList inclFiles, - ArrayList recList) - { - mName = name; - mInclFiles = inclFiles; - mRecords = recList; - } - - /** Strip the other pathname components and return the basename */ - String getName() { - int idx = mName.lastIndexOf('/'); - return (idx > 0) ? mName.substring(idx) : mName; - } - - /** Generate record code in given language. Language should be all - * lowercase. - * @param outputDirectory - */ - public void genCode(String language, File outputDirectory) - throws IOException - { - if ("c++".equals(language)) { - CppGenerator gen = new CppGenerator(mName, mInclFiles, mRecords, - outputDirectory); - gen.genCode(); - } else if ("java".equals(language)) { - JavaGenerator gen = new JavaGenerator(mName, mInclFiles, mRecords, - outputDirectory); - gen.genCode(); - } else if ("c".equals(language)) { - CGenerator gen = new CGenerator(mName, mInclFiles, mRecords, - outputDirectory); - gen.genCode(); - } else if ("csharp".equals(language)) { - CSharpGenerator gen = new CSharpGenerator(mName, mInclFiles, mRecords, - outputDirectory); - gen.genCode(); - } else { - throw new IOException("Cannnot recognize language:" + language); - } - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JFloat.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JFloat.java b/src/java/main/org/apache/jute/compiler/JFloat.java deleted file mode 100644 index a4be6ec..0000000 --- a/src/java/main/org/apache/jute/compiler/JFloat.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JFloat extends JType { - - /** Creates a new instance of JFloat */ - public JFloat() { - super("float", "float", "float", "float", "Float", "Float", "float", "toFloat"); - } - - public String getSignature() { - return "f"; - } - - public String genJavaHashCode(String fname) { - return " ret = Float.floatToIntBits("+fname+");\n"; - } - -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JInt.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JInt.java b/src/java/main/org/apache/jute/compiler/JInt.java deleted file mode 100644 index 23b902e..0000000 --- a/src/java/main/org/apache/jute/compiler/JInt.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JInt extends JType { - - /** Creates a new instance of JInt */ - public JInt() { - super("int32_t", "int32_t", "int", "int", "Int", "Integer", "int", "toInt"); - } - - public String getSignature() { - return "i"; - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JLong.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JLong.java b/src/java/main/org/apache/jute/compiler/JLong.java deleted file mode 100644 index 342fd9a..0000000 --- a/src/java/main/org/apache/jute/compiler/JLong.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JLong extends JType { - - /** Creates a new instance of JLong */ - public JLong() { - super("int64_t", "int64_t", "long", "long", "Long", "Long", "long", "toLong"); - } - - public String getSignature() { - return "l"; - } - - public String genJavaHashCode(String fname) { - return " ret = (int) ("+fname+"^("+fname+">>>32));\n"; - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JMap.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JMap.java b/src/java/main/org/apache/jute/compiler/JMap.java deleted file mode 100644 index cc503be..0000000 --- a/src/java/main/org/apache/jute/compiler/JMap.java +++ /dev/null @@ -1,149 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JMap extends JCompType { - - static private int level = 0; - - static private String getLevel() { return Integer.toString(level); } - - static private void incrLevel() { level++; } - - static private void decrLevel() { level--; } - - static private String getId(String id) { return id+getLevel(); } - - private JType mKey; - private JType mValue; - - /** Creates a new instance of JMap */ - public JMap(JType t1, JType t2) { - super("#error", " ::std::map<"+t1.getCppType()+","+t2.getCppType()+">", - "System.Collections.Generic.SortedDictionary", "java.util.TreeMap", "Map", "System.Collections.Generic.SortedDictionary", "java.util.TreeMap"); - mKey = t1; - mValue = t2; - } - - public String getSignature() { - return "{" + mKey.getSignature() + mValue.getSignature() +"}"; - } - - public String genJavaCompareTo(String fname) { - return " throw new UnsupportedOperationException(\"comparing " - + fname + " is unimplemented\");\n"; - } - - public String genJavaReadWrapper(String fname, String tag, boolean decl) { - StringBuilder ret = new StringBuilder(""); - if (decl) { - ret.append(" java.util.TreeMap "+fname+";\n"); - } - ret.append(" {\n"); - incrLevel(); - ret.append(" org.apache.jute.Index "+getId("midx")+" = a_.startMap(\""+tag+"\");\n"); - ret.append(" "+fname+"=new java.util.TreeMap();\n"); - ret.append(" for (; !"+getId("midx")+".done(); "+getId("midx")+".incr()) {\n"); - ret.append(mKey.genJavaReadWrapper(getId("k"),getId("k"),true)); - ret.append(mValue.genJavaReadWrapper(getId("v"),getId("v"),true)); - ret.append(" "+fname+".put("+getId("k")+","+getId("v")+");\n"); - ret.append(" }\n"); - ret.append(" a_.endMap(\""+tag+"\");\n"); - decrLevel(); - ret.append(" }\n"); - return ret.toString(); - } - - public String genJavaReadMethod(String fname, String tag) { - return genJavaReadWrapper(fname, tag, false); - } - - public String genJavaWriteWrapper(String fname, String tag) { - StringBuilder ret = new StringBuilder(" {\n"); - incrLevel(); - ret.append(" a_.startMap("+fname+",\""+tag+"\");\n"); - ret.append(" java.util.Set "+getId("es")+" = "+fname+".entrySet();\n"); - ret.append(" for(java.util.Iterator "+getId("midx")+" = "+getId("es")+".iterator(); "+getId("midx")+".hasNext(); ) {\n"); - ret.append(" java.util.Map.Entry "+getId("me")+" = (java.util.Map.Entry) "+getId("midx")+".next();\n"); - ret.append(" "+mKey.getJavaWrapperType()+" "+getId("k")+" = ("+mKey.getJavaWrapperType()+") "+getId("me")+".getKey();\n"); - ret.append(" "+mValue.getJavaWrapperType()+" "+getId("v")+" = ("+mValue.getJavaWrapperType()+") "+getId("me")+".getValue();\n"); - ret.append(mKey.genJavaWriteWrapper(getId("k"),getId("k"))); - ret.append(mValue.genJavaWriteWrapper(getId("v"),getId("v"))); - ret.append(" }\n"); - ret.append(" a_.endMap("+fname+",\""+tag+"\");\n"); - ret.append(" }\n"); - decrLevel(); - return ret.toString(); - } - - public String genJavaWriteMethod(String fname, String tag) { - return genJavaWriteWrapper(fname, tag); - } - - public String genCsharpWriteWrapper(String fname, int tag) { - StringBuilder ret = new StringBuilder(" {\n"); - incrLevel(); - ret.append(" a_.StartMap("+fname+",\""+tag+"\");\n"); - ret.append(" java.util.Set "+getId("es")+" = "+fname+".entrySet();\n"); - ret.append(" for(java.util.Iterator "+getId("midx")+" = "+getId("es")+".iterator(); "+getId("midx")+".hasNext(); ) {\n"); - ret.append(" java.util.Map.Entry "+getId("me")+" = (java.util.Map.Entry) "+getId("midx")+".next();\n"); - ret.append(" "+mKey.getCsharpWrapperType()+" "+getId("k")+" = ("+mKey.getCsharpWrapperType()+") "+getId("me")+".getKey();\n"); - ret.append(" "+mValue.getCsharpWrapperType()+" "+getId("v")+" = ("+mValue.getCsharpWrapperType()+") "+getId("me")+".getValue();\n"); - ret.append(mKey.genCsharpWriteWrapper(getId("k"),getId("k"))); - ret.append(mValue.genCsharpWriteWrapper(getId("v"),getId("v"))); - ret.append(" }\n"); - ret.append(" a_.EndMap("+fname+",\""+tag+"\");\n"); - ret.append(" }\n"); - decrLevel(); - return ret.toString(); - } - - String genCsharpWriteMethod(String fname, int tag) { - return genCsharpWriteWrapper(fname, tag); - } - - public String genCsharpReadWrapper(String fname, int tag, boolean decl) { - StringBuilder ret = new StringBuilder(""); - if (decl) { - ret.append(" System.Collections.SortedDictionary "+capitalize(fname)+";\n"); - } - ret.append(" {\n"); - incrLevel(); - ret.append(" Org.Apache.Jute.IIndex "+getId("midx")+" = a_.StartMap(\""+tag+"\");\n"); - ret.append(" "+fname+"= new System.Collections.SortedDictionary();\n"); - ret.append(" for (; !"+getId("midx")+".done(); "+getId("midx")+".incr()) {\n"); - ret.append(mKey.genCsharpReadWrapper(getId("k"),getId("k"),true)); - ret.append(mValue.genCsharpReadWrapper(getId("v"),getId("v"),true)); - ret.append(" "+fname+".Add("+getId("k")+","+getId("v")+");\n"); - ret.append(" }\n"); - ret.append(" a_.EndMap(\""+tag+"\");\n"); - decrLevel(); - ret.append(" }\n"); - return ret.toString(); - } - - - - String genCsharpReadMethod(String fname, int tag) { - return genCsharpReadWrapper(fname, tag, false); - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JRecord.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JRecord.java b/src/java/main/org/apache/jute/compiler/JRecord.java deleted file mode 100644 index fece97d..0000000 --- a/src/java/main/org/apache/jute/compiler/JRecord.java +++ /dev/null @@ -1,760 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; - -/** - * - */ -public class JRecord extends JCompType { - - private String mFQName; - private String mName; - private String mModule; - private ArrayList mFields; - - /** - * Creates a new instance of JRecord - */ - public JRecord(String name, ArrayList flist) { - super("struct " + name.substring(name.lastIndexOf('.')+1), - name.replaceAll("\\.","::"), getCsharpFQName(name), name, "Record", name, getCsharpFQName("IRecord")); - mFQName = name; - int idx = name.lastIndexOf('.'); - mName = name.substring(idx+1); - mModule = name.substring(0, idx); - mFields = flist; - } - - public String getName() { - return mName; - } - - public String getCsharpName() { - return "Id".equals(mName) ? "ZKId" : mName; - } - - public String getJavaFQName() { - return mFQName; - } - - public String getCppFQName() { - return mFQName.replaceAll("\\.", "::"); - } - - public String getJavaPackage() { - return mModule; - } - - public String getCppNameSpace() { - return mModule.replaceAll("\\.", "::"); - } - - public String getCsharpNameSpace() { - String[] parts = mModule.split("\\."); - StringBuffer namespace = new StringBuffer(); - for (int i = 0; i < parts.length; i++) { - String capitalized = parts[i].substring(0, 1).toUpperCase() + parts[i].substring(1).toLowerCase(); - namespace.append(capitalized); - if (i != parts.length - 1) namespace.append("."); - } - return namespace.toString(); - } - - public ArrayList getFields() { - return mFields; - } - - public String getSignature() { - StringBuilder sb = new StringBuilder(); - sb.append("L").append(mName).append("("); - for (Iterator i = mFields.iterator(); i.hasNext();) { - String s = i.next().getSignature(); - sb.append(s); - } - sb.append(")"); - return sb.toString(); - } - - public String genCppDecl(String fname) { - return " "+ getCppNameSpace() + "::" + mName+" m"+fname+";\n"; - } - - public String genJavaReadMethod(String fname, String tag) { - return genJavaReadWrapper(fname, tag, false); - } - - public String genJavaReadWrapper(String fname, String tag, boolean decl) { - StringBuilder ret = new StringBuilder(""); - if (decl) { - ret.append(" "+getJavaFQName()+" "+fname+";\n"); - } - ret.append(" "+fname+"= new "+getJavaFQName()+"();\n"); - ret.append(" a_.readRecord("+fname+",\""+tag+"\");\n"); - return ret.toString(); - } - - public String genJavaWriteWrapper(String fname, String tag) { - return " a_.writeRecord("+fname+",\""+tag+"\");\n"; - } - - String genCsharpReadMethod(String fname, String tag) { - //return " "+capitalize(fname)+"=a_.Read"+mMethodSuffix+"(" + capitalize(fname) + ",\""+tag+"\");\n"; - return genCsharpReadWrapper(capitalize(fname), tag, false); - } - - public String genCsharpReadWrapper(String fname, String tag, boolean decl) { - StringBuilder ret = new StringBuilder(""); - if (decl) { - ret.append(" "+getCsharpFQName(mFQName)+" "+fname+";\n"); - } - ret.append(" "+fname+"= new "+getCsharpFQName(mFQName)+"();\n"); - ret.append(" a_.ReadRecord("+fname+",\""+tag+"\");\n"); - return ret.toString(); - } - - public String genCsharpWriteWrapper(String fname, String tag) { - return " a_.WriteRecord("+fname+",\""+tag+"\");\n"; - } - - static HashMap vectorStructs = new HashMap(); - public void genCCode(FileWriter h, FileWriter c) throws IOException { - for (JField f : mFields) { - if (f.getType() instanceof JVector) { - JVector jv = (JVector) f.getType(); - JType jvType = jv.getElementType(); - String struct_name = JVector.extractVectorName(jvType); - if (vectorStructs.get(struct_name) == null) { - vectorStructs.put(struct_name, struct_name); - h.write("struct " + struct_name + " {\n int32_t count;\n" + jv.getElementType().genCDecl("*data") + "\n};\n"); - h.write("int serialize_" + struct_name + "(struct oarchive *out, const char *tag, struct " + struct_name + " *v);\n"); - h.write("int deserialize_" + struct_name + "(struct iarchive *in, const char *tag, struct " + struct_name + " *v);\n"); - h.write("int allocate_" + struct_name + "(struct " + struct_name + " *v, int32_t len);\n"); - h.write("int deallocate_" + struct_name + "(struct " + struct_name + " *v);\n"); - c.write("int allocate_" + struct_name + "(struct " + struct_name + " *v, int32_t len) {\n"); - c.write(" if (!len) {\n"); - c.write(" v->count = 0;\n"); - c.write(" v->data = 0;\n"); - c.write(" } else {\n"); - c.write(" v->count = len;\n"); - c.write(" v->data = calloc(sizeof(*v->data), len);\n"); - c.write(" }\n"); - c.write(" return 0;\n"); - c.write("}\n"); - c.write("int deallocate_" + struct_name + "(struct " + struct_name + " *v) {\n"); - c.write(" if (v->data) {\n"); - c.write(" int32_t i;\n"); - c.write(" for(i=0;icount; i++) {\n"); - c.write(" deallocate_" + JRecord.extractMethodSuffix(jvType) + "(&v->data[i]);\n"); - c.write(" }\n"); - c.write(" free(v->data);\n"); - c.write(" v->data = 0;\n"); - c.write(" }\n"); - c.write(" return 0;\n"); - c.write("}\n"); - c.write("int serialize_" + struct_name + "(struct oarchive *out, const char *tag, struct " + struct_name + " *v)\n"); - c.write("{\n"); - c.write(" int32_t count = v->count;\n"); - c.write(" int rc = 0;\n"); - c.write(" int32_t i;\n"); - c.write(" rc = out->start_vector(out, tag, &count);\n"); - c.write(" for(i=0;icount;i++) {\n"); - genSerialize(c, jvType, "data", "data[i]"); - c.write(" }\n"); - c.write(" rc = rc ? rc : out->end_vector(out, tag);\n"); - c.write(" return rc;\n"); - c.write("}\n"); - c.write("int deserialize_" + struct_name + "(struct iarchive *in, const char *tag, struct " + struct_name + " *v)\n"); - c.write("{\n"); - c.write(" int rc = 0;\n"); - c.write(" int32_t i;\n"); - c.write(" rc = in->start_vector(in, tag, &v->count);\n"); - c.write(" v->data = calloc(v->count, sizeof(*v->data));\n"); - c.write(" for(i=0;icount;i++) {\n"); - genDeserialize(c, jvType, "value", "data[i]"); - c.write(" }\n"); - c.write(" rc = in->end_vector(in, tag);\n"); - c.write(" return rc;\n"); - c.write("}\n"); - - } - } - } - String rec_name = getName(); - h.write("struct " + rec_name + " {\n"); - for (JField f : mFields) { - h.write(f.genCDecl()); - } - h.write("};\n"); - h.write("int serialize_" + rec_name + "(struct oarchive *out, const char *tag, struct " + rec_name + " *v);\n"); - h.write("int deserialize_" + rec_name + "(struct iarchive *in, const char *tag, struct " + rec_name + "*v);\n"); - h.write("void deallocate_" + rec_name + "(struct " + rec_name + "*);\n"); - c.write("int serialize_" + rec_name + "(struct oarchive *out, const char *tag, struct " + rec_name + " *v)"); - c.write("{\n"); - c.write(" int rc;\n"); - c.write(" rc = out->start_record(out, tag);\n"); - for (JField f : mFields) { - genSerialize(c, f.getType(), f.getTag(), f.getName()); - } - c.write(" rc = rc ? rc : out->end_record(out, tag);\n"); - c.write(" return rc;\n"); - c.write("}\n"); - c.write("int deserialize_" + rec_name + "(struct iarchive *in, const char *tag, struct " + rec_name + "*v)"); - c.write("{\n"); - c.write(" int rc;\n"); - c.write(" rc = in->start_record(in, tag);\n"); - for (JField f : mFields) { - genDeserialize(c, f.getType(), f.getTag(), f.getName()); - } - c.write(" rc = rc ? rc : in->end_record(in, tag);\n"); - c.write(" return rc;\n"); - c.write("}\n"); - c.write("void deallocate_" + rec_name + "(struct " + rec_name + "*v)"); - c.write("{\n"); - for (JField f : mFields) { - if (f.getType() instanceof JRecord) { - c.write(" deallocate_" + extractStructName(f.getType()) + "(&v->" + f.getName() + ");\n"); - } else if (f.getType() instanceof JVector) { - JVector vt = (JVector) f.getType(); - c.write(" deallocate_" + JVector.extractVectorName(vt.getElementType()) + "(&v->" + f.getName() + ");\n"); - } else if (f.getType() instanceof JCompType) { - c.write(" deallocate_" + extractMethodSuffix(f.getType()) + "(&v->" + f.getName() + ");\n"); - } - } - c.write("}\n"); - } - - private void genSerialize(FileWriter c, JType type, String tag, String name) throws IOException { - if (type instanceof JRecord) { - c.write(" rc = rc ? rc : serialize_" + extractStructName(type) + "(out, \"" + tag + "\", &v->" + name + ");\n"); - } else if (type instanceof JVector) { - c.write(" rc = rc ? rc : serialize_" + JVector.extractVectorName(((JVector)type).getElementType()) + "(out, \"" + tag + "\", &v->" + name + ");\n"); - } else { - c.write(" rc = rc ? rc : out->serialize_" + extractMethodSuffix(type) + "(out, \"" + tag + "\", &v->" + name + ");\n"); - } - } - - private void genDeserialize(FileWriter c, JType type, String tag, String name) throws IOException { - if (type instanceof JRecord) { - c.write(" rc = rc ? rc : deserialize_" + extractStructName(type) + "(in, \"" + tag + "\", &v->" + name + ");\n"); - } else if (type instanceof JVector) { - c.write(" rc = rc ? rc : deserialize_" + JVector.extractVectorName(((JVector)type).getElementType()) + "(in, \"" + tag + "\", &v->" + name + ");\n"); - } else { - c.write(" rc = rc ? rc : in->deserialize_" + extractMethodSuffix(type) + "(in, \"" + tag + "\", &v->" + name + ");\n"); - } - } - - static String extractMethodSuffix(JType t) { - if (t instanceof JRecord) { - return extractStructName(t); - } - return t.getMethodSuffix(); - } - - static private String extractStructName(JType t) { - String type = t.getCType(); - if (!type.startsWith("struct ")) return type; - return type.substring("struct ".length()); - } - - public void genCppCode(FileWriter hh, FileWriter cc) - throws IOException { - String[] ns = getCppNameSpace().split("::"); - for (int i = 0; i < ns.length; i++) { - hh.write("namespace "+ns[i]+" {\n"); - } - - hh.write("class "+getName()+" : public ::hadoop::Record {\n"); - hh.write("private:\n"); - - for (Iterator i = mFields.iterator(); i.hasNext();) { - JField jf = i.next(); - hh.write(jf.genCppDecl()); - } - hh.write(" mutable std::bitset<"+mFields.size()+"> bs_;\n"); - hh.write("public:\n"); - hh.write(" virtual void serialize(::hadoop::OArchive& a_, const char* tag) const;\n"); - hh.write(" virtual void deserialize(::hadoop::IArchive& a_, const char* tag);\n"); - hh.write(" virtual const ::std::string& type() const;\n"); - hh.write(" virtual const ::std::string& signature() const;\n"); - hh.write(" virtual bool validate() const;\n"); - hh.write(" virtual bool operator<(const "+getName()+"& peer_) const;\n"); - hh.write(" virtual bool operator==(const "+getName()+"& peer_) const;\n"); - hh.write(" virtual ~"+getName()+"() {};\n"); - int fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - hh.write(jf.genCppGetSet(fIdx)); - } - hh.write("}; // end record "+getName()+"\n"); - for (int i=ns.length-1; i>=0; i--) { - hh.write("} // end namespace "+ns[i]+"\n"); - } - cc.write("void "+getCppFQName()+"::serialize(::hadoop::OArchive& a_, const char* tag) const {\n"); - cc.write(" if (!validate()) throw new ::hadoop::IOException(\"All fields not set.\");\n"); - cc.write(" a_.startRecord(*this,tag);\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - String name = jf.getName(); - if (jf.getType() instanceof JBuffer) { - cc.write(" a_.serialize(m"+name+",m"+name+".length(),\""+jf.getTag()+"\");\n"); - } else { - cc.write(" a_.serialize(m"+name+",\""+jf.getTag()+"\");\n"); - } - cc.write(" bs_.reset("+fIdx+");\n"); - } - cc.write(" a_.endRecord(*this,tag);\n"); - cc.write(" return;\n"); - cc.write("}\n"); - - cc.write("void "+getCppFQName()+"::deserialize(::hadoop::IArchive& a_, const char* tag) {\n"); - cc.write(" a_.startRecord(*this,tag);\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - String name = jf.getName(); - if (jf.getType() instanceof JBuffer) { - cc.write(" { size_t len=0; a_.deserialize(m"+name+",len,\""+jf.getTag()+"\");}\n"); - } else { - cc.write(" a_.deserialize(m"+name+",\""+jf.getTag()+"\");\n"); - } - cc.write(" bs_.set("+fIdx+");\n"); - } - cc.write(" a_.endRecord(*this,tag);\n"); - cc.write(" return;\n"); - cc.write("}\n"); - - cc.write("bool "+getCppFQName()+"::validate() const {\n"); - cc.write(" if (bs_.size() != bs_.count()) return false;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = (JField) i.next(); - JType type = jf.getType(); - if (type instanceof JRecord) { - cc.write(" if (!m"+jf.getName()+".validate()) return false;\n"); - } - } - cc.write(" return true;\n"); - cc.write("}\n"); - - cc.write("bool "+getCppFQName()+"::operator< (const "+getCppFQName()+"& peer_) const {\n"); - cc.write(" return (1\n"); - for (Iterator i = mFields.iterator(); i.hasNext();) { - JField jf = i.next(); - String name = jf.getName(); - cc.write(" && (m"+name+" < peer_.m"+name+")\n"); - } - cc.write(" );\n"); - cc.write("}\n"); - - cc.write("bool "+getCppFQName()+"::operator== (const "+getCppFQName()+"& peer_) const {\n"); - cc.write(" return (1\n"); - for (Iterator i = mFields.iterator(); i.hasNext();) { - JField jf = i.next(); - String name = jf.getName(); - cc.write(" && (m"+name+" == peer_.m"+name+")\n"); - } - cc.write(" );\n"); - cc.write("}\n"); - - cc.write("const ::std::string&"+getCppFQName()+"::type() const {\n"); - cc.write(" static const ::std::string type_(\""+mName+"\");\n"); - cc.write(" return type_;\n"); - cc.write("}\n"); - - cc.write("const ::std::string&"+getCppFQName()+"::signature() const {\n"); - cc.write(" static const ::std::string sig_(\""+getSignature()+"\");\n"); - cc.write(" return sig_;\n"); - cc.write("}\n"); - - } - - public void genJavaCode(File outputDirectory) throws IOException { - String pkg = getJavaPackage(); - String pkgpath = pkg.replaceAll("\\.", "/"); - File pkgdir = new File(outputDirectory, pkgpath); - if (!pkgdir.exists()) { - // create the pkg directory - if (!pkgdir.mkdirs()) { - throw new IOException("Cannnot create directory: " + pkgpath); - } - } else if (!pkgdir.isDirectory()) { - throw new IOException(pkgpath + " is not a directory."); - } - try (FileWriter jj = new FileWriter(new File(pkgdir, getName()+".java"))) { - jj.write("// File generated by hadoop record compiler. Do not edit.\n"); - jj.write("/**\n"); - jj.write("* Licensed to the Apache Software Foundation (ASF) under one\n"); - jj.write("* or more contributor license agreements. See the NOTICE file\n"); - jj.write("* distributed with this work for additional information\n"); - jj.write("* regarding copyright ownership. The ASF licenses this file\n"); - jj.write("* to you under the Apache License, Version 2.0 (the\n"); - jj.write("* \"License\"); you may not use this file except in compliance\n"); - jj.write("* with the License. You may obtain a copy of the License at\n"); - jj.write("*\n"); - jj.write("* http://www.apache.org/licenses/LICENSE-2.0\n"); - jj.write("*\n"); - jj.write("* Unless required by applicable law or agreed to in writing, software\n"); - jj.write("* distributed under the License is distributed on an \"AS IS\" BASIS,\n"); - jj.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); - jj.write("* See the License for the specific language governing permissions and\n"); - jj.write("* limitations under the License.\n"); - jj.write("*/\n"); - jj.write("\n"); - jj.write("package " + getJavaPackage() + ";\n\n"); - jj.write("import org.apache.jute.*;\n"); - jj.write("import org.apache.yetus.audience.InterfaceAudience;\n"); - jj.write("@InterfaceAudience.Public\n"); - jj.write("public class " + getName() + " implements Record {\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); ) { - JField jf = i.next(); - jj.write(jf.genJavaDecl()); - } - jj.write(" public " + getName() + "() {\n"); - jj.write(" }\n"); - - jj.write(" public " + getName() + "(\n"); - int fIdx = 0; - int fLen = mFields.size(); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaConstructorParam(jf.getName())); - jj.write((fLen - 1 == fIdx) ? "" : ",\n"); - } - jj.write(") {\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaConstructorSet(jf.getName())); - } - jj.write(" }\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaGetSet(fIdx)); - } - jj.write(" public void serialize(OutputArchive a_, String tag) throws java.io.IOException {\n"); - jj.write(" a_.startRecord(this,tag);\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaWriteMethodName()); - } - jj.write(" a_.endRecord(this,tag);\n"); - jj.write(" }\n"); - - jj.write(" public void deserialize(InputArchive a_, String tag) throws java.io.IOException {\n"); - jj.write(" a_.startRecord(tag);\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaReadMethodName()); - } - jj.write(" a_.endRecord(tag);\n"); - jj.write("}\n"); - - jj.write(" public String toString() {\n"); - jj.write(" try {\n"); - jj.write(" java.io.ByteArrayOutputStream s =\n"); - jj.write(" new java.io.ByteArrayOutputStream();\n"); - jj.write(" CsvOutputArchive a_ = \n"); - jj.write(" new CsvOutputArchive(s);\n"); - jj.write(" a_.startRecord(this,\"\");\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaWriteMethodName()); - } - jj.write(" a_.endRecord(this,\"\");\n"); - jj.write(" return new String(s.toByteArray(), \"UTF-8\");\n"); - jj.write(" } catch (Throwable ex) {\n"); - jj.write(" ex.printStackTrace();\n"); - jj.write(" }\n"); - jj.write(" return \"ERROR\";\n"); - jj.write(" }\n"); - - jj.write(" public void write(java.io.DataOutput out) throws java.io.IOException {\n"); - jj.write(" BinaryOutputArchive archive = new BinaryOutputArchive(out);\n"); - jj.write(" serialize(archive, \"\");\n"); - jj.write(" }\n"); - - jj.write(" public void readFields(java.io.DataInput in) throws java.io.IOException {\n"); - jj.write(" BinaryInputArchive archive = new BinaryInputArchive(in);\n"); - jj.write(" deserialize(archive, \"\");\n"); - jj.write(" }\n"); - - jj.write(" public int compareTo (Object peer_) throws ClassCastException {\n"); - boolean unimplemented = false; - for (JField f : mFields) { - if ((f.getType() instanceof JMap) - || (f.getType() instanceof JVector)) { - unimplemented = true; - } - } - if (unimplemented) { - jj.write(" throw new UnsupportedOperationException(\"comparing " - + getName() + " is unimplemented\");\n"); - } else { - jj.write(" if (!(peer_ instanceof " + getName() + ")) {\n"); - jj.write(" throw new ClassCastException(\"Comparing different types of records.\");\n"); - jj.write(" }\n"); - jj.write(" " + getName() + " peer = (" + getName() + ") peer_;\n"); - jj.write(" int ret = 0;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaCompareTo()); - jj.write(" if (ret != 0) return ret;\n"); - } - jj.write(" return ret;\n"); - } - jj.write(" }\n"); - - jj.write(" public boolean equals(Object peer_) {\n"); - jj.write(" if (!(peer_ instanceof " + getName() + ")) {\n"); - jj.write(" return false;\n"); - jj.write(" }\n"); - jj.write(" if (peer_ == this) {\n"); - jj.write(" return true;\n"); - jj.write(" }\n"); - jj.write(" " + getName() + " peer = (" + getName() + ") peer_;\n"); - jj.write(" boolean ret = false;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaEquals()); - jj.write(" if (!ret) return ret;\n"); - } - jj.write(" return ret;\n"); - jj.write(" }\n"); - - jj.write(" public int hashCode() {\n"); - jj.write(" int result = 17;\n"); - jj.write(" int ret;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - jj.write(jf.genJavaHashCode()); - jj.write(" result = 37*result + ret;\n"); - } - jj.write(" return result;\n"); - jj.write(" }\n"); - jj.write(" public static String signature() {\n"); - jj.write(" return \"" + getSignature() + "\";\n"); - jj.write(" }\n"); - - jj.write("}\n"); - } - } - - public void genCsharpCode(File outputDirectory) throws IOException { - if (!outputDirectory.exists()) { - // create the pkg directory - if (!outputDirectory.mkdirs()) { - throw new IOException("Cannnot create directory: " + outputDirectory); - } - } else if (!outputDirectory.isDirectory()) { - throw new IOException(outputDirectory + " is not a directory."); - } - - try (FileWriter cs = new FileWriter(new File(outputDirectory, getName() + ".cs"));) { - cs.write("// File generated by hadoop record compiler. Do not edit.\n"); - cs.write("/**\n"); - cs.write("* Licensed to the Apache Software Foundation (ASF) under one\n"); - cs.write("* or more contributor license agreements. See the NOTICE file\n"); - cs.write("* distributed with this work for additional information\n"); - cs.write("* regarding copyright ownership. The ASF licenses this file\n"); - cs.write("* to you under the Apache License, Version 2.0 (the\n"); - cs.write("* \"License\"); you may not use this file except in compliance\n"); - cs.write("* with the License. You may obtain a copy of the License at\n"); - cs.write("*\n"); - cs.write("* http://www.apache.org/licenses/LICENSE-2.0\n"); - cs.write("*\n"); - cs.write("* Unless required by applicable law or agreed to in writing, software\n"); - cs.write("* distributed under the License is distributed on an \"AS IS\" BASIS,\n"); - cs.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); - cs.write("* See the License for the specific language governing permissions and\n"); - cs.write("* limitations under the License.\n"); - cs.write("*/\n"); - cs.write("\n"); - cs.write("using System;\n"); - cs.write("using Org.Apache.Jute;\n"); - cs.write("\n"); - cs.write("namespace " + getCsharpNameSpace() + "\n"); - cs.write("{\n"); - - String className = getCsharpName(); - cs.write("public class " + className + " : IRecord, IComparable \n"); - cs.write("{\n"); - cs.write(" public " + className + "() {\n"); - cs.write(" }\n"); - - cs.write(" public " + className + "(\n"); - int fIdx = 0; - int fLen = mFields.size(); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpConstructorParam(jf.getCsharpName())); - cs.write((fLen - 1 == fIdx) ? "" : ",\n"); - } - cs.write(") {\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpConstructorSet(jf.getCsharpName())); - } - cs.write(" }\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpGetSet(fIdx)); - cs.write("\n"); - } - cs.write(" public void Serialize(IOutputArchive a_, String tag) {\n"); - cs.write(" a_.StartRecord(this,tag);\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpWriteMethodName()); - } - cs.write(" a_.EndRecord(this,tag);\n"); - cs.write(" }\n"); - - cs.write(" public void Deserialize(IInputArchive a_, String tag) {\n"); - cs.write(" a_.StartRecord(tag);\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpReadMethodName()); - } - cs.write(" a_.EndRecord(tag);\n"); - cs.write("}\n"); - - cs.write(" public override String ToString() {\n"); - cs.write(" try {\n"); - cs.write(" System.IO.MemoryStream ms = new System.IO.MemoryStream();\n"); - cs.write(" MiscUtil.IO.EndianBinaryWriter writer =\n"); - cs.write(" new MiscUtil.IO.EndianBinaryWriter(MiscUtil.Conversion.EndianBitConverter.Big, ms, System.Text.Encoding.UTF8);\n"); - cs.write(" BinaryOutputArchive a_ = \n"); - cs.write(" new BinaryOutputArchive(writer);\n"); - cs.write(" a_.StartRecord(this,\"\");\n"); - fIdx = 0; - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpWriteMethodName()); - } - cs.write(" a_.EndRecord(this,\"\");\n"); - cs.write(" ms.Position = 0;\n"); - cs.write(" return System.Text.Encoding.UTF8.GetString(ms.ToArray());\n"); - cs.write(" } catch (Exception ex) {\n"); - cs.write(" Console.WriteLine(ex.StackTrace);\n"); - cs.write(" }\n"); - cs.write(" return \"ERROR\";\n"); - cs.write(" }\n"); - - cs.write(" public void Write(MiscUtil.IO.EndianBinaryWriter writer) {\n"); - cs.write(" BinaryOutputArchive archive = new BinaryOutputArchive(writer);\n"); - cs.write(" Serialize(archive, \"\");\n"); - cs.write(" }\n"); - - cs.write(" public void ReadFields(MiscUtil.IO.EndianBinaryReader reader) {\n"); - cs.write(" BinaryInputArchive archive = new BinaryInputArchive(reader);\n"); - cs.write(" Deserialize(archive, \"\");\n"); - cs.write(" }\n"); - - cs.write(" public int CompareTo (object peer_) {\n"); - boolean unimplemented = false; - for (JField f : mFields) { - if ((f.getType() instanceof JMap) - || (f.getType() instanceof JVector)) { - unimplemented = true; - } - } - if (unimplemented) { - cs.write(" throw new InvalidOperationException(\"comparing " - + getCsharpName() + " is unimplemented\");\n"); - } else { - cs.write(" if (!(peer_ is " + getCsharpName() + ")) {\n"); - cs.write(" throw new InvalidOperationException(\"Comparing different types of records.\");\n"); - cs.write(" }\n"); - cs.write(" " + getCsharpName() + " peer = (" + getCsharpName() + ") peer_;\n"); - cs.write(" int ret = 0;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpCompareTo()); - cs.write(" if (ret != 0) return ret;\n"); - } - cs.write(" return ret;\n"); - } - cs.write(" }\n"); - - cs.write(" public override bool Equals(object peer_) {\n"); - cs.write(" if (!(peer_ is " + getCsharpName() + ")) {\n"); - cs.write(" return false;\n"); - cs.write(" }\n"); - cs.write(" if (peer_ == this) {\n"); - cs.write(" return true;\n"); - cs.write(" }\n"); - cs.write(" bool ret = false;\n"); - cs.write(" " + getCsharpName() + " peer = (" + getCsharpName() + ")peer_;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpEquals()); - cs.write(" if (!ret) return ret;\n"); - } - cs.write(" return ret;\n"); - cs.write(" }\n"); - - cs.write(" public override int GetHashCode() {\n"); - cs.write(" int result = 17;\n"); - cs.write(" int ret;\n"); - for (Iterator i = mFields.iterator(); i.hasNext(); fIdx++) { - JField jf = i.next(); - cs.write(jf.genCsharpHashCode()); - cs.write(" result = 37*result + ret;\n"); - } - cs.write(" return result;\n"); - cs.write(" }\n"); - cs.write(" public static string Signature() {\n"); - cs.write(" return \"" + getSignature() + "\";\n"); - cs.write(" }\n"); - - cs.write("}\n"); - cs.write("}\n"); - - cs.close(); - } - } - - public static String getCsharpFQName(String name) { - String[] packages = name.split("\\."); - StringBuffer fQName = new StringBuffer(); - for (int i = 0; i < packages.length; i++) { - String pack = packages[i]; - pack = capitalize(pack); - pack = "Id".equals(pack) ? "ZKId" : pack; - fQName.append(capitalize(pack)); - if (i != packages.length - 1) fQName.append("."); - } - return fQName.toString(); - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JString.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JString.java b/src/java/main/org/apache/jute/compiler/JString.java deleted file mode 100644 index 7f246c3..0000000 --- a/src/java/main/org/apache/jute/compiler/JString.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * - */ -public class JString extends JCompType { - - /** Creates a new instance of JString */ - public JString() { - super("char *", " ::std::string", "string", "String", "String", "String", "string"); - } - - public String getSignature() { - return "s"; - } - - public String genJavaReadWrapper(String fname, String tag, boolean decl) { - String ret = ""; - if (decl) { - ret = " String "+fname+";\n"; - } - return ret + " "+fname+"=a_.readString(\""+tag+"\");\n"; - } - - public String genJavaWriteWrapper(String fname, String tag) { - return " a_.writeString("+fname+",\""+tag+"\");\n"; - } -} http://git-wip-us.apache.org/repos/asf/zookeeper/blob/d69c3c20/src/java/main/org/apache/jute/compiler/JType.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/jute/compiler/JType.java b/src/java/main/org/apache/jute/compiler/JType.java deleted file mode 100644 index ee1b9c0..0000000 --- a/src/java/main/org/apache/jute/compiler/JType.java +++ /dev/null @@ -1,204 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jute.compiler; - -/** - * Abstract Base class for all types supported by Hadoop Record I/O. - * - */ -abstract public class JType { - - private String mCName; - private String mCppName; - private String mCsharpName; - private String mJavaName; - protected String mMethodSuffix; - private String mWrapper; - private String mSharpWrapper; - private String mUnwrapMethod; - - /** - * Creates a new instance of JType - */ - JType(String cname, String cppname, String csharpName, String javaname, String suffix, String wrapper, String csharpWrapper, String unwrap) { - mCName = cname; - mCppName = cppname; - mCsharpName = "Id".equals(csharpName) ? "ZKId" : csharpName; - mJavaName = javaname; - mMethodSuffix = suffix; - mWrapper = wrapper; - mSharpWrapper = csharpWrapper; - mUnwrapMethod = unwrap; - } - - abstract String getSignature(); - - String genCppDecl(String fname) { - return " "+mCppName+" m"+fname+";\n"; - } - - String genCDecl(String name) { - return " " + mCName + " "+name+";\n"; - } - - public String genCsharpDecl(String name) { - return " private "+mCsharpName+" " +name+";\n"; - } - - String genJavaDecl (String fname) { - return " private "+mJavaName+" " +fname+";\n"; - } - - String genJavaConstructorParam (String fname) { - return " "+mJavaName+" "+fname; - } - - String genCppGetSet(String fname, int fIdx) { - String getFunc = " virtual "+mCppName+" get"+fname+"() const {\n"; - getFunc += " return m"+fname+";\n"; - getFunc += " }\n"; - String setFunc = " virtual void set"+fname+"("+mCppName+" m_) {\n"; - setFunc += " m"+fname+"=m_; bs_.set("+fIdx+");\n"; - setFunc += " }\n"; - return getFunc+setFunc; - } - - String genCsharpGetSet(String fname, int fIdx) { - String getFunc = " public " + getCsharpType() + " " + capitalize(fname) + " { get; set; } "; - return getFunc; - } - - static String capitalize(String s) { - return s.substring(0,1).toUpperCase()+s.substring(1); - } - String genJavaGetSet(String fname, int fIdx) { - String getFunc = " public "+mJavaName+" get"+capitalize(fname)+"() {\n"; - getFunc += " return "+fname+";\n"; - getFunc += " }\n"; - String setFunc = " public void set"+capitalize(fname)+"("+mJavaName+" m_) {\n"; - setFunc += " " + fname+"=m_;\n"; - setFunc += " }\n"; - return getFunc+setFunc; - } - - String getCType() { - return mCName; - } - String getCppType() { - return mCppName; - } - - String getCsharpType() { - return mCsharpName; - } - - String getJavaType() { - return mJavaName; - } - - String getJavaWrapperType() { - return mWrapper; - } - - String getCsharpWrapperType() { - return mSharpWrapper; - } - - String getMethodSuffix() { - return mMethodSuffix; - } - - String genJavaWriteMethod(String fname, String tag) { - return " a_.write"+mMethodSuffix+"("+fname+",\""+tag+"\");\n"; - } - - String genJavaReadMethod(String fname, String tag) { - return " "+fname+"=a_.read"+mMethodSuffix+"(\""+tag+"\");\n"; - } - - String genJavaReadWrapper(String fname, String tag, boolean decl) { - String ret = ""; - if (decl) { - ret = " "+mWrapper+" "+fname+";\n"; - } - return ret + " "+fname+"=new "+mWrapper+"(a_.read"+mMethodSuffix+"(\""+tag+"\"));\n"; - } - - String genJavaWriteWrapper(String fname, String tag) { - return " a_.write"+mMethodSuffix+"("+fname+"."+mUnwrapMethod+"(),\""+tag+"\");\n"; - } - - String genJavaCompareTo(String fname) { - return " ret = ("+fname+" == peer."+fname+")? 0 :(("+fname+"