Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
djinni
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
djinni
Commits
c52e1b28
Commit
c52e1b28
authored
Apr 04, 2016
by
Xianwen Chen
Committed by
Andrew Twyman
Apr 09, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add an option of generating non-final java class for record type.
parent
c8b573a9
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
45 additions
and
18 deletions
+45
-18
src/source/JavaGenerator.scala
src/source/JavaGenerator.scala
+3
-1
src/source/Main.scala
src/source/Main.scala
+4
-0
src/source/generator.scala
src/source/generator.scala
+1
-0
test-suite/generated-src/java/com/dropbox/djinni/test/AssortedPrimitives.java
...-src/java/com/dropbox/djinni/test/AssortedPrimitives.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/ClientReturnedRecord.java
...rc/java/com/dropbox/djinni/test/ClientReturnedRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/ConstantRecord.java
...ated-src/java/com/dropbox/djinni/test/ConstantRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/Constants.java
...generated-src/java/com/dropbox/djinni/test/Constants.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/DateRecord.java
...enerated-src/java/com/dropbox/djinni/test/DateRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/EmptyRecord.java
...nerated-src/java/com/dropbox/djinni/test/EmptyRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/ExtendedRecord.java
...ated-src/java/com/dropbox/djinni/test/ExtendedRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/MapDateRecord.java
...rated-src/java/com/dropbox/djinni/test/MapDateRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/MapListRecord.java
...rated-src/java/com/dropbox/djinni/test/MapListRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/MapRecord.java
...generated-src/java/com/dropbox/djinni/test/MapRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/NestedCollection.java
...ed-src/java/com/dropbox/djinni/test/NestedCollection.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/OptColorRecord.java
...ated-src/java/com/dropbox/djinni/test/OptColorRecord.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/PrimitiveList.java
...rated-src/java/com/dropbox/djinni/test/PrimitiveList.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/RecordWithDerivings.java
...src/java/com/dropbox/djinni/test/RecordWithDerivings.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/RecordWithDurationAndDerivings.java
...m/dropbox/djinni/test/RecordWithDurationAndDerivings.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/RecordWithNestedDerivings.java
...va/com/dropbox/djinni/test/RecordWithNestedDerivings.java
+1
-1
test-suite/generated-src/java/com/dropbox/djinni/test/SetRecord.java
...generated-src/java/com/dropbox/djinni/test/SetRecord.java
+1
-1
test-suite/handwritten-src/java/com/dropbox/djinni/test/AllTests.java
...andwritten-src/java/com/dropbox/djinni/test/AllTests.java
+1
-0
test-suite/handwritten-src/java/com/dropbox/djinni/test/MockRecordTest.java
...tten-src/java/com/dropbox/djinni/test/MockRecordTest.java
+18
-0
test-suite/run_djinni.sh
test-suite/run_djinni.sh
+1
-0
No files found.
src/source/JavaGenerator.scala
View file @
c52e1b28
...
...
@@ -211,7 +211,9 @@ class JavaGenerator(spec: Spec) extends Generator(spec) {
val
refs
=
new
JavaRefs
()
r
.
fields
.
foreach
(
f
=>
refs
.
find
(
f
.
ty
))
val
(
javaName
,
javaFinal
)
=
if
(
r
.
ext
.
java
)
(
ident
.
name
+
"_base"
,
""
)
else
(
ident
.
name
,
" final"
)
val
javaName
=
if
(
r
.
ext
.
java
)
(
ident
.
name
+
"_base"
)
else
ident
.
name
val
javaFinal
=
if
(!
r
.
ext
.
java
&&
spec
.
javaUseFinalForRecord
)
" final"
else
""
writeJavaFile
(
javaName
,
origin
,
refs
.
java
,
w
=>
{
writeDoc
(
w
,
doc
)
javaAnnotationHeader
.
foreach
(
w
.
wl
)
...
...
src/source/Main.scala
View file @
c52e1b28
...
...
@@ -41,6 +41,7 @@ object Main {
var
javaAnnotation
:
Option
[
String
]
=
None
var
javaNullableAnnotation
:
Option
[
String
]
=
None
var
javaNonnullAnnotation
:
Option
[
String
]
=
None
var
javaUseFinalForRecord
:
Boolean
=
true
var
jniOutFolder
:
Option
[
File
]
=
None
var
jniHeaderOutFolderOptional
:
Option
[
File
]
=
None
var
jniNamespace
:
String
=
"djinni_generated"
...
...
@@ -105,6 +106,8 @@ object Main {
.
text
(
"Java annotation (@Nullable) to place on all fields and return values that are optional"
)
opt
[
String
](
"java-nonnull-annotation"
).
valueName
(
"<nonnull-annotation-class>"
).
foreach
(
x
=>
javaNonnullAnnotation
=
Some
(
x
))
.
text
(
"Java annotation (@Nonnull) to place on all fields and return values that are not optional"
)
opt
[
Boolean
](
"java-use-final-for-record"
).
valueName
(
"<use-final-for-record>"
).
foreach
(
x
=>
javaUseFinalForRecord
=
x
)
.
text
(
"Whether generated Java classes for records should be marked 'final' (default: true). "
)
note
(
""
)
opt
[
File
](
"cpp-out"
).
valueName
(
"<out-folder>"
).
foreach
(
x
=>
cppOutFolder
=
Some
(
x
))
.
text
(
"The output folder for C++ files (Generator disabled if unspecified)."
)
...
...
@@ -276,6 +279,7 @@ object Main {
javaAnnotation
,
javaNullableAnnotation
,
javaNonnullAnnotation
,
javaUseFinalForRecord
,
cppOutFolder
,
cppHeaderOutFolder
,
cppIncludePrefix
,
...
...
src/source/generator.scala
View file @
c52e1b28
...
...
@@ -35,6 +35,7 @@ package object generatorTools {
javaAnnotation
:
Option
[
String
],
javaNullableAnnotation
:
Option
[
String
],
javaNonnullAnnotation
:
Option
[
String
],
javaUseFinalForRecord
:
Boolean
,
cppOutFolder
:
Option
[
File
],
cppHeaderOutFolder
:
Option
[
File
],
cppIncludePrefix
:
String
,
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/AssortedPrimitives.java
View file @
c52e1b28
...
...
@@ -6,7 +6,7 @@ package com.dropbox.djinni.test;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
AssortedPrimitives
{
public
class
AssortedPrimitives
{
/*package*/
final
boolean
mB
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/ClientReturnedRecord.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import javax.annotation.CheckForNull;
import
javax.annotation.Nonnull
;
/** Record returned by a client */
public
final
class
ClientReturnedRecord
{
public
class
ClientReturnedRecord
{
/*package*/
final
long
mRecordId
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/ConstantRecord.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import javax.annotation.CheckForNull;
import
javax.annotation.Nonnull
;
/** Record for use in constants */
public
final
class
ConstantRecord
{
public
class
ConstantRecord
{
/*package*/
final
int
mSomeInteger
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/Constants.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import javax.annotation.CheckForNull;
import
javax.annotation.Nonnull
;
/** Record containing constants */
public
final
class
Constants
{
public
class
Constants
{
/** bool_constant has documentation. */
public
static
final
boolean
BOOL_CONSTANT
=
true
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/DateRecord.java
View file @
c52e1b28
...
...
@@ -6,7 +6,7 @@ package com.dropbox.djinni.test;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
DateRecord
implements
Comparable
<
DateRecord
>
{
public
class
DateRecord
implements
Comparable
<
DateRecord
>
{
/*package*/
final
java
.
util
.
Date
mCreatedAt
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/EmptyRecord.java
View file @
c52e1b28
...
...
@@ -11,7 +11,7 @@ import javax.annotation.Nonnull;
* (Second line of multi-line documentation.
* Indented third line of multi-line documentation.)
*/
public
final
class
EmptyRecord
{
public
class
EmptyRecord
{
public
EmptyRecord
(
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/ExtendedRecord.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import javax.annotation.CheckForNull;
import
javax.annotation.Nonnull
;
/** Extended record */
public
final
class
ExtendedRecord
{
public
class
ExtendedRecord
{
@Nonnull
public
static
final
ExtendedRecord
EXTENDED_RECORD_CONST
=
new
ExtendedRecord
(
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/MapDateRecord.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import java.util.HashMap;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
MapDateRecord
{
public
class
MapDateRecord
{
/*package*/
final
HashMap
<
String
,
java
.
util
.
Date
>
mDatesById
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/MapListRecord.java
View file @
c52e1b28
...
...
@@ -8,7 +8,7 @@ import java.util.HashMap;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
MapListRecord
{
public
class
MapListRecord
{
/*package*/
final
ArrayList
<
HashMap
<
String
,
Long
>>
mMapList
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/MapRecord.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import java.util.HashMap;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
MapRecord
{
public
class
MapRecord
{
/*package*/
final
HashMap
<
String
,
Long
>
mMap
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/NestedCollection.java
View file @
c52e1b28
...
...
@@ -8,7 +8,7 @@ import java.util.HashSet;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
NestedCollection
{
public
class
NestedCollection
{
/*package*/
final
ArrayList
<
HashSet
<
String
>>
mSetList
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/OptColorRecord.java
View file @
c52e1b28
...
...
@@ -6,7 +6,7 @@ package com.dropbox.djinni.test;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
OptColorRecord
{
public
class
OptColorRecord
{
/*package*/
final
Color
mMyColor
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/PrimitiveList.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import java.util.ArrayList;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
PrimitiveList
{
public
class
PrimitiveList
{
/*package*/
final
ArrayList
<
Long
>
mList
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/RecordWithDerivings.java
View file @
c52e1b28
...
...
@@ -6,7 +6,7 @@ package com.dropbox.djinni.test;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
RecordWithDerivings
implements
Comparable
<
RecordWithDerivings
>
{
public
class
RecordWithDerivings
implements
Comparable
<
RecordWithDerivings
>
{
/*package*/
final
int
mKey1
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/RecordWithDurationAndDerivings.java
View file @
c52e1b28
...
...
@@ -6,7 +6,7 @@ package com.dropbox.djinni.test;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
RecordWithDurationAndDerivings
implements
Comparable
<
RecordWithDurationAndDerivings
>
{
public
class
RecordWithDurationAndDerivings
implements
Comparable
<
RecordWithDurationAndDerivings
>
{
/*package*/
final
java
.
time
.
Duration
mDt
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/RecordWithNestedDerivings.java
View file @
c52e1b28
...
...
@@ -6,7 +6,7 @@ package com.dropbox.djinni.test;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
RecordWithNestedDerivings
implements
Comparable
<
RecordWithNestedDerivings
>
{
public
class
RecordWithNestedDerivings
implements
Comparable
<
RecordWithNestedDerivings
>
{
/*package*/
final
int
mKey
;
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/SetRecord.java
View file @
c52e1b28
...
...
@@ -7,7 +7,7 @@ import java.util.HashSet;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
final
class
SetRecord
{
public
class
SetRecord
{
/*package*/
final
HashSet
<
String
>
mSet
;
...
...
test-suite/handwritten-src/java/com/dropbox/djinni/test/AllTests.java
View file @
c52e1b28
...
...
@@ -21,6 +21,7 @@ public class AllTests extends TestSuite {
mySuite
.
addTestSuite
(
PrimitivesTest
.
class
);
mySuite
.
addTestSuite
(
TokenTest
.
class
);
mySuite
.
addTestSuite
(
DurationTest
.
class
);
mySuite
.
addTestSuite
(
MockRecordTest
.
class
);
return
mySuite
;
}
...
...
test-suite/handwritten-src/java/com/dropbox/djinni/test/MockRecordTest.java
0 → 100644
View file @
c52e1b28
package
com.dropbox.djinni.test
;
import
junit.framework.TestCase
;
class
MockConstants
extends
Constants
{
@Override
public
String
toString
()
{
return
"MockConstants{}"
;
}
}
public
class
MockRecordTest
extends
TestCase
{
public
void
testMockConstants
()
{
Constants
mock
=
new
MockConstants
();
assertEquals
(
"The toString() method should be overrided."
,
"MockConstants{}"
,
mock
.
toString
());
}
}
test-suite/run_djinni.sh
View file @
c52e1b28
...
...
@@ -64,6 +64,7 @@ fi
--java-package
$java_package
\
--java-nullable-annotation
"javax.annotation.CheckForNull"
\
--java-nonnull-annotation
"javax.annotation.Nonnull"
\
--java-use-final-for-record
false
\
--ident-java-field
mFooBar
\
\
--cpp-out
"
$temp_out_relative
/cpp"
\
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment