Skip to content

Commit

Permalink
More gen improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
xpenatan committed Jul 15, 2023
1 parent dd6dd07 commit 65f50bb
Show file tree
Hide file tree
Showing 11 changed files with 344 additions and 135 deletions.
12 changes: 9 additions & 3 deletions example/example-build/jni/cpp/src/NormalClass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,23 @@ NormalClass::NormalClass(ParamClass * pointerParamClass, ParamClass & refParamCl
d++;
}

int NormalClass::subIntValue(int a, int b)
int NormalClass::subIntValue(int a, int b, int subValue)
{
return (a - b);
return (a - b) - subValue;
}

int NormalClass::addIntValue(int a, int b)
{
return (a + b) * hiddenInt * hiddenParentInt;
}

ReturnClass NormalClass::getReturnValueClass()
ReturnClass NormalClass::getStaticReturnValueClass(ParamClass * paramClass)
{
ReturnClass temp;
return temp;
}

ReturnClass NormalClass::getReturnValueClass(ParamClass * paramClass)
{
return valueReturnClass;
}
Expand Down
7 changes: 5 additions & 2 deletions example/example-build/jni/cpp/src/NormalClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,12 @@ class NormalClass : public ParentClass
NormalClass(int c, ParamClass & refParamClass);
NormalClass(ParamClass * pointerParamClass, ParamClass & refParamClass, ParamClass valueParamClass);

static int subIntValue(int a, int b);
static int subIntValue(int a, int b, int subValue = 0);
int addIntValue(int a, int b);
ReturnClass getReturnValueClass();

static ReturnClass getStaticReturnValueClass(ParamClass * paramClass);
ReturnClass getReturnValueClass(ParamClass * paramClass);

ReturnClass & getReturnRefClass();
ReturnClass * getReturnPointerClass();
ReturnClass * getReturnNullPointerClass();
Expand Down
19 changes: 11 additions & 8 deletions example/example-build/src/main/resources/idl/Test.idl
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,18 @@ interface NormalClass {
void NormalClass(long c, [Ref]ParamClass refParamClass);
void NormalClass(ParamClass pointerParamClass, [Ref]ParamClass refParamClass, [Value]ParamClass valueParamClass);

static long subIntValue(long a, long b);
// static DOMString addString(DOMString text);
[Value] static ReturnClass getStaticReturnValueClass(ParamClass paramClass);
[Value]ReturnClass getReturnValueClass(ParamClass paramClass);

static long subIntValue(long a, long b, optional long subValue);
long addIntValue(long a, long b);
// [Value]ReturnClass getReturnValueClass();
// [Ref]ReturnClass getReturnRefClass();
// ReturnClass getReturnPointerClass();
// ReturnClass getReturnNullPointerClass();
// void refParam([Ref]ParamClass paramClass);
// void pointerParam(ParamClass paramClass);
// void valueParam([Value]ParamClass paramClass);
[Ref]ReturnClass getReturnRefClass();
ReturnClass getReturnPointerClass();
ReturnClass getReturnNullPointerClass();
void refParam([Ref]ParamClass paramClass);
void pointerParam(ParamClass paramClass);
void valueParam([Value]ParamClass paramClass);
};
NormalClass implements ParentClass;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ public void test_static_sub_int() {
assertEquals(1, ret);
}

@Test
public void test_static_sub_int_subValue() {
int ret = NormalClass.subIntValue(11, 10, 1);
assertEquals(0, ret);
}

@Test
public void test_add_float() {
NormalClass normalClass = new NormalClass();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,13 @@ public void onParseClassStart(JParser jParser, CompilationUnit unit, ClassOrInte
String nameStr = name.asString();
IDLClass idlClass = idlReader.getClass(nameStr);
if(idlClass != null) {
ArrayList<IDLConstructor> constructors = idlClass.constructors;
for(int i = 0; i < constructors.size(); i++) {
IDLConstructor idlConstructor = constructors.get(i);
IDLConstructorParser.generateConstructor(this, jParser, unit, classOrInterfaceDeclaration, idlClass, idlConstructor);

if(generateClass) {
ArrayList<IDLConstructor> constructors = idlClass.constructors;
for(int i = 0; i < constructors.size(); i++) {
IDLConstructor idlConstructor = constructors.get(i);
IDLConstructorParser.generateConstructor(this, jParser, unit, classOrInterfaceDeclaration, idlClass, idlConstructor);
}
}

ArrayList<IDLMethod> methods = idlClass.methods;
Expand Down Expand Up @@ -114,4 +117,12 @@ public void onIDLMethodGenerated(JParser jParser, IDLClass idlClass, IDLMethod i
public void onIDLMethodGenerated(JParser jParser, IDLMethod idlMethod, ClassOrInterfaceDeclaration classDeclaration, MethodDeclaration methodDeclaration, MethodDeclaration nativeMethodDeclaration) {
}

/**
* true to accept the idl method
*/
@Deprecated
public boolean filterIDLMethod(IDLClass idlClass, IDLMethod idlMethod) {
return true;
}

}
Loading

0 comments on commit 65f50bb

Please sign in to comment.