< prev index next >

src/jdk.jextract/share/classes/com/sun/tools/jextract/JavaSourceFactoryExt.java

Print this page




 113             return false;
 114         }
 115     }
 116 
 117     @Override
 118     public Boolean visitFunction(FunctionTree funcTree, JType jt) {
 119         if (super.visitFunction(funcTree, jt)) {
 120             header_jsb.emitStaticForwarder(funcTree, (JType.Function)jt, STATICS_LIBRARY_FIELD_NAME);
 121             return true;
 122         } else {
 123             return false;
 124         }
 125     }
 126 
 127     @Override
 128     public Boolean visitMacro(MacroTree macroTree, JType jt) {
 129         if (super.visitMacro(macroTree, jt)) {
 130             String name = macroTree.name();
 131             MacroParser.Macro macro = macroTree.macro().get();
 132             log.print(Level.FINE, () -> "Adding macro " + name);
 133             addConstant(header_jsb, name, macro.type(), macro.value());
 134             return true;
 135         } else {
 136             return false;
 137         }
 138     }
 139 
 140     private void addConstant(JavaSourceBuilderExt jsb, String name, JType type, Object value) {
 141         Object constantValue = makeConstantValue(type, value);
 142         jsb.addField(name, type, constantValue, STATICS_LIBRARY_FIELD_NAME);
 143     }
 144 
 145     private Object makeConstantValue(JType type, Object value) {
 146         switch (type.getDescriptor()) {
 147             case "Z":
 148                 return ((long)value) != 0;
 149             case "C":
 150                 return (char)(long)value;
 151             case "B":
 152                 return (byte)(long)value;
 153             case "S":


 113             return false;
 114         }
 115     }
 116 
 117     @Override
 118     public Boolean visitFunction(FunctionTree funcTree, JType jt) {
 119         if (super.visitFunction(funcTree, jt)) {
 120             header_jsb.emitStaticForwarder(funcTree, (JType.Function)jt, STATICS_LIBRARY_FIELD_NAME);
 121             return true;
 122         } else {
 123             return false;
 124         }
 125     }
 126 
 127     @Override
 128     public Boolean visitMacro(MacroTree macroTree, JType jt) {
 129         if (super.visitMacro(macroTree, jt)) {
 130             String name = macroTree.name();
 131             MacroParser.Macro macro = macroTree.macro().get();
 132             log.print(Level.FINE, () -> "Adding macro " + name);
 133             addConstant(header_jsb, Utils.toMacroName(name), macro.type(), macro.value());
 134             return true;
 135         } else {
 136             return false;
 137         }
 138     }
 139 
 140     private void addConstant(JavaSourceBuilderExt jsb, String name, JType type, Object value) {
 141         Object constantValue = makeConstantValue(type, value);
 142         jsb.addField(name, type, constantValue, STATICS_LIBRARY_FIELD_NAME);
 143     }
 144 
 145     private Object makeConstantValue(JType type, Object value) {
 146         switch (type.getDescriptor()) {
 147             case "Z":
 148                 return ((long)value) != 0;
 149             case "C":
 150                 return (char)(long)value;
 151             case "B":
 152                 return (byte)(long)value;
 153             case "S":
< prev index next >