aws-amplify / amplify-android
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 21% duplication:
    • 41,917 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 9,104 duplicated lines
  • 9,214 duplicates
system21% (9,104 lines)
Duplication per Extension
java22% (8,723 lines)
kt9% (239 lines)
graphql19% (88 lines)
groovy17% (30 lines)
yml32% (24 lines)
Duplication per Component (primary)
testmodels48% (3,567 lines)
core16% (1,904 lines)
aws-datastore11% (788 lines)
aws-storage-s344% (646 lines)
aws-api21% (633 lines)
aws-auth-cognito30% (615 lines)
aws-predictions11% (244 lines)
aws-predictions-tensorflow36% (222 lines)
core-kotlin20% (205 lines)
aws-api-appsync5% (82 lines)
testutils6% (75 lines)
aws-geo-location8% (34 lines)
amplify-tools17% (30 lines)
rxbindings2% (27 lines)
scripts32% (24 lines)
aws-analytics-pinpoint1% (8 lines)
maplibre-adapter0% (0 lines)
configuration0% (0 lines)

Duplication Between Components (50+ lines)

G aws-datastore aws-datastore core core aws-datastore--core 576 testmodels testmodels core--testmodels 238 aws-auth-cognito aws-auth-cognito aws-auth-cognito--core 484 aws-auth-cognito--testmodels 112 aws-storage-s3 aws-storage-s3 aws-storage-s3--core 375 aws-api-appsync aws-api-appsync aws-api-appsync--aws-datastore 132 aws-api-appsync--core 312 aws-api aws-api aws-api-appsync--aws-api 54 aws-predictions-tensorflow aws-predictions-tensorflow aws-predictions-tensorflow--core 168 aws-predictions aws-predictions aws-predictions-tensorflow--aws-predictions 266 aws-predictions--core 164 aws-api--aws-datastore 259 aws-api--core 132

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 9,214 duplicates...
Size#FoldersFilesLinesCode
30 x 2 aws-api/src/main/java/com/amplifyframework/api/aws
aws-api/src/main/java/com/amplifyframework/api/aws
AppSyncGraphQLOperation.java
MultiAuthAppSyncGraphQLOperation.java
161:205 (25%)
193:236 (21%)
view
27 x 2 aws-storage-s3/src/main/...rk/storage/s3/operation
aws-storage-s3/src/main/...rk/storage/s3/operation
AWSS3StorageUploadFileOperation.java
AWSS3StorageUploadInputStreamOperatio...
70:104 (23%)
72:106 (22%)
view
26 x 2 aws-api/src/main/java/com/amplifyframework/api/aws
aws-api/src/main/java/com/amplifyframework/api/aws
MutiAuthSubscriptionOperation.java
SubscriptionOperation.java
200:237 (17%)
132:169 (23%)
view
23 x 2 aws-predictions/src/main...predictions/aws/adapter
aws-predictions/src/main...predictions/aws/adapter
RekognitionResultTransformers.java
TextractResultTransformers.java
58:100 (21%)
62:103 (18%)
view
23 x 2 aws-api/src/main/java/com/amplifyframework/api/aws
aws-datastore/src/main/j...ework/datastore/appsync
AppSyncGraphQLRequestFactory.java
AppSyncRequestFactory.java
325:347 (10%)
298:320 (7%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
PrivateIAMPost.java
PrivatePublicComboUPPost.java
128:169 (23%)
128:169 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
GroupPublicUPAPIPost.java
PrivatePublicUPIAMPost.java
129:170 (23%)
129:170 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
PrivateIAMPost.java
PublicIAMPost.java
128:169 (23%)
128:169 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
GroupPublicUPAPIPost.java
OwnerPrivatePublicUPIAMAPIPost.java
129:170 (23%)
130:171 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
OwnerPublicUPAPIPost.java
PrivatePublicComboAPIPost.java
129:170 (23%)
128:169 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
OwnerPublicOIDAPIPost.java
PrivatePublicComboUPPost.java
129:170 (23%)
128:169 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
GroupPublicUPAPIPost.java
PrivatePublicComboUPPost.java
129:170 (23%)
128:169 (23%)
view
22 x 2 testmodels/src/main/java...estmodels/noteswithauth
testmodels/src/main/java...estmodels/noteswithauth
PrivateNote.java
PublicNote.java
111:152 (26%)
111:152 (26%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
OwnerPublicUPAPIPost.java
PublicPublicIAMAPIPost.java
129:170 (23%)
129:170 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
OwnerPublicUPIAMPost.java
PrivatePublicIAMAPIPost.java
129:170 (23%)
129:170 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/phonecall
PrivatePublicIAMAPIPost.java
Person.java
129:170 (23%)
137:178 (21%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
GroupPrivatePublicUPIAMAPIPost.java
PrivatePrivateUPIAMPost.java
130:171 (23%)
129:170 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
PrivatePublicComboUPPost.java
PrivatePublicIAMAPIPost.java
128:169 (23%)
129:170 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
OwnerOIDCPost.java
PrivatePrivatePublicUPIAMAPIPost.java
128:169 (23%)
130:171 (23%)
view
22 x 2 testmodels/src/main/java...rk/testmodels/multiauth
testmodels/src/main/java...rk/testmodels/multiauth
GroupPublicUPAPIPost.java
PrivateIAMPost.java
129:170 (23%)
128:169 (23%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 35 unit duplicates...
Size#FoldersFilesLinesCode
22 x 3 testutils/src/main/java/...lifyframework/testutils
aws-datastore/src/main/j...lifyframework/datastore
rxbindings/src/main/java/com/amplifyframework/rx
AmplifyDisposables.java
AmplifyDisposables.java
AmplifyDisposables.java
40:63 
50:73 
40:63 
view
16 x 2 aws-api/src/main/java/com/amplifyframework/api/aws
aws-api/src/main/java/com/amplifyframework/api/aws
MutiAuthSubscriptionOperation.java
SubscriptionOperation.java
148:164 
95:111 
view
15 x 2 aws-storage-s3/src/main/...rk/storage/s3/operation
aws-storage-s3/src/main/...rk/storage/s3/operation
AWSS3StorageUploadFileOperation.java
AWSS3StorageUploadInputStreamOperatio...
64:79 
66:81 
view
14 x 2 aws-api/src/main/java/com/amplifyframework/api/aws
aws-api/src/main/java/com/amplifyframework/api/aws
AWSApiPlugin.java
AWSApiPlugin.java
223:237 
257:271 
view
13 x 2 aws-predictions/src/main...predictions/aws/adapter
aws-predictions/src/main...predictions/aws/adapter
RekognitionResultTransformers.java
TextractResultTransformers.java
78:91 
82:95 
view
12 x 2 aws-storage-s3/src/main/...rk/storage/s3/operation
aws-storage-s3/src/main/...rk/storage/s3/operation
AWSS3StorageDownloadFileOperation.java
AWSS3StorageUploadFileOperation.java
121:133 
133:145 
view
12 x 2 aws-storage-s3/src/main/...rk/storage/s3/operation
aws-storage-s3/src/main/...rk/storage/s3/operation
AWSS3StorageDownloadFileOperation.java
AWSS3StorageUploadFileOperation.java
136:148 
148:160 
view
12 x 2 aws-storage-s3/src/main/...rk/storage/s3/operation
aws-storage-s3/src/main/...rk/storage/s3/operation
AWSS3StorageDownloadFileOperation.java
AWSS3StorageUploadFileOperation.java
151:163 
163:175 
view
10 x 2 aws-predictions/src/main...predictions/aws/adapter
aws-predictions/src/main...predictions/aws/adapter
RekognitionResultTransformers.java
TextractResultTransformers.java
59:69 
63:73 
view
9 x 2 aws-predictions-tensorfl.../predictions/tensorflow
aws-predictions/src/main...amework/predictions/aws
TensorFlowPredictionsPlugin.java
AWSPredictionsPlugin.java
155:164 
194:203 
view
9 x 56 testmodels/src/main/java...rk/testmodels/phonecall
testmodels/src/main/java...rk/testmodels/phonecall
testmodels/src/main/java...rk/testmodels/phonecall
testmodels/src/main/java.../testmodels/teamproject
testmodels/src/main/java.../testmodels/teamproject
testmodels/src/main/java...amework/testmodels/todo
testmodels/src/main/java...estmodels/noteswithauth
testmodels/src/main/java...estmodels/noteswithauth
testmodels/src/main/java...estmodels/noteswithauth
testmodels/src/main/java...rk/testmodels/parenting
...
Person.java
Phone.java
Call.java
Team.java
Projectfields.java
Todo.java
PrivateNote.java
Task.java
PublicNote.java
Parent.java
...
155:166 
187:198 
208:219 
142:153 
155:166 
381:392 
129:140 
169:180 
129:140 
188:199 
...
view
8 x 2 aws-api/src/main/java/com/amplifyframework/api/aws
aws-api/src/main/java/com/amplifyframework/api/aws
MultiAuthAppSyncGraphQLOperation.java
MutiAuthSubscriptionOperation.java
146:154 
166:174 
view
8 x 2 aws-storage-s3/src/main/...rk/storage/s3/operation
aws-storage-s3/src/main/...rk/storage/s3/operation
AWSS3StorageUploadFileOperation.java
AWSS3StorageUploadInputStreamOperatio...
200:208 
209:217 
view
8 x 2 aws-storage-s3/src/main/...work/storage/s3/options
aws-storage-s3/src/main/...work/storage/s3/options
AWSS3StorageUploadInputStreamOptions....
AWSS3StorageUploadFileOptions.java
104:112 
104:112 
view
8 x 2 aws-storage-s3/src/main/...work/storage/s3/options
aws-storage-s3/src/main/...work/storage/s3/options
AWSS3StorageUploadInputStreamOptions....
AWSS3StorageUploadFileOptions.java
116:124 
116:124 
view
7 x 2 aws-datastore/src/main/j...ework/datastore/appsync
aws-api/src/main/java/com/amplifyframework/api/aws
AppSyncRequestFactory.java
AppSyncGraphQLRequestFactory.java
375:382 
355:362 
view
7 x 2 aws-predictions-tensorfl...ctions/tensorflow/asset
aws-predictions-tensorfl...ctions/tensorflow/asset
TextClassificationDictionary.java
TextClassificationLabels.java
173:180 
132:139 
view
7 x 2 aws-predictions-tensorfl.../predictions/tensorflow
aws-predictions/src/main...amework/predictions/aws
TensorFlowPredictionsPlugin.java
AWSPredictionsPlugin.java
184:191 
233:240 
view
7 x 3 core/src/main/java/com/a...amework/storage/options
core/src/main/java/com/a...amework/storage/options
core/src/main/java/com/a...amework/storage/options
StorageUploadFileOptions.java
StorageUploadOptions.java
StorageUploadInputStreamOptions.java
97:104 
88:95 
97:104 
view
7 x 3 core/src/main/java/com/a...amework/storage/options
core/src/main/java/com/a...amework/storage/options
core/src/main/java/com/a...amework/storage/options
StorageUploadFileOptions.java
StorageUploadOptions.java
StorageUploadInputStreamOptions.java
111:118 
102:109 
111:118 
view