Skip to content

Commit

Permalink
Fix inheritance and polymorphism
Browse files Browse the repository at this point in the history
  • Loading branch information
Maksim Zvankovich committed Aug 9, 2022
1 parent 0cfeb65 commit 3d70680
Show file tree
Hide file tree
Showing 37 changed files with 33,106 additions and 11,029 deletions.
1,755 changes: 1,269 additions & 486 deletions 27.0.json

Large diffs are not rendered by default.

1,171 changes: 900 additions & 271 deletions 27.0.yml

Large diffs are not rendered by default.

1,925 changes: 1,434 additions & 491 deletions 29.0.json

Large diffs are not rendered by default.

1,298 changes: 1,027 additions & 271 deletions 29.0.yml

Large diffs are not rendered by default.

1,879 changes: 1,398 additions & 481 deletions 30.0.json

Large diffs are not rendered by default.

1,268 changes: 1,003 additions & 265 deletions 30.0.yml

Large diffs are not rendered by default.

1,941 changes: 1,444 additions & 497 deletions 31.0.json

Large diffs are not rendered by default.

1,319 changes: 1,045 additions & 274 deletions 31.0.yml

Large diffs are not rendered by default.

1,954 changes: 1,447 additions & 507 deletions 32.0.json

Large diffs are not rendered by default.

1,328 changes: 1,048 additions & 280 deletions 32.0.yml

Large diffs are not rendered by default.

1,958 changes: 1,451 additions & 507 deletions 33.0.json

Large diffs are not rendered by default.

1,332 changes: 1,052 additions & 280 deletions 33.0.yml

Large diffs are not rendered by default.

2,003 changes: 1,494 additions & 509 deletions 34.0.json

Large diffs are not rendered by default.

1,370 changes: 1,090 additions & 280 deletions 34.0.yml

Large diffs are not rendered by default.

2,045 changes: 1,484 additions & 561 deletions 35.0.json

Large diffs are not rendered by default.

1,401 changes: 1,088 additions & 313 deletions 35.0.yml

Large diffs are not rendered by default.

2,045 changes: 1,484 additions & 561 deletions 35.2.json

Large diffs are not rendered by default.

1,401 changes: 1,088 additions & 313 deletions 35.2.yml

Large diffs are not rendered by default.

2,045 changes: 1,484 additions & 561 deletions 36.0.json

Large diffs are not rendered by default.

1,401 changes: 1,088 additions & 313 deletions 36.0.yml

Large diffs are not rendered by default.

2,045 changes: 1,484 additions & 561 deletions 36.1.json

Large diffs are not rendered by default.

1,401 changes: 1,088 additions & 313 deletions 36.1.yml

Large diffs are not rendered by default.

2,045 changes: 1,484 additions & 561 deletions 36.2.json

Large diffs are not rendered by default.

1,401 changes: 1,088 additions & 313 deletions 36.2.yml

Large diffs are not rendered by default.

2,045 changes: 1,484 additions & 561 deletions 36.3.json

Large diffs are not rendered by default.

1,401 changes: 1,088 additions & 313 deletions 36.3.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ diff -U20 --color=always \
To fix the issue [Unable to compile Java openapi client#3](https://github.com/ccouzens/vcloud-rest-openapi/issues/3), run [patch_java_openapi_client.sed](./patch_java_openapi_client.sed) as a temporary workaround

```bash
find <output directory>/ -type f \( -name "*.java" -o -name "*.md" \) -exec sed -ri -f patch_java_openapi_client.sed {} \;
find <output directory> -regex '.*\(Type\|Value\|AllOf\|Test\)\.java' -exec grep -H '_type\|typeTest' {} \; -exec sed -ri -f patch_java_openapi_client.sed {} \;
```

## Status
Expand Down
61 changes: 39 additions & 22 deletions patch_java_openapi_client.sed
Original file line number Diff line number Diff line change
@@ -1,24 +1,41 @@
{
0,/(Vcloud)?(Metadata|QueryResult)(Typed|String|Number|Boolean|DateTime|LicensingReport|LicensingReportSample|LicensingManagedServer|LicensingVirtualMachine|AdminEventCBM|ToCloudTunnel|FromCloudTunnel|SiteOrgAssociation|Org|OrgVdc|Media|VAppTemplate|VApp|VM|OrgNetwork|AdminOrgNetwork|VAppNetwork|Catalog|AdminVdc|VMWProviderVdc|Network|Group|User|StrandedUser|Role|AllocatedExternalAddress|Event|ResourcePool|Datastore|NetworkPool|Portgroup|DvSwitch|Cell|VirtualCenter|Host|AdminVApp|Right|AdminVM|AdminAllocatedExternalAddress|VAppOrgNetworkRelation|OrgVdcResourcePoolRelation|ProviderVdcResourcePoolRelation|DatastoreProviderVdcRelation|AdminUser|AdminGroup|AdminVAppNetwork|AdminCatalog|AdminCatalogItem|CatalogItem|AdminMedia|AdminVAppTemplate|AdminShadowVM|Task|AdminTask|BlockingTask|Disk|VmDiskRelation|AdminDisk|AdminVmDiskRelation|Condition|AdminEvent|StrandedItem|AdminService|Service|ServiceLink|StorageProfile|OrgVdcStorageProfile|AdminOrgVdcStorageProfile|ProviderVdcStorageProfile|ApiFilter|AdminApiDefinition|ApiDefinition|AdminFileDescriptor|FileDescriptor|ResourceClassAction|AclRule|ResourceClass|ServiceResource|EdgeGateway|OrgVdcNetwork|VAppOrgVdcNetworkRelation|ExternalLocalization|ResourcePoolVM|VmGroupVms|VmGroups|AdminRole|NsxTManager|AdminOrgVdcTemplate|OrgVdcTemplate|GatewayUplinks|Site|SiteAssociation|OrgAssociation)?(RecordType|Value)(\.JSON_PROPERTY_)(TYPE)/s//\1\2\3\4\5_\6/;
0,/(Objects\.equals\(this\.)(type, )(vcloud)?([Qq]ueryResult|[Mm]etadata)(Typed|String|Number|Boolean|DateTime|LicensingReport|LicensingReportSample|LicensingManagedServer|LicensingVirtualMachine|AdminEventCBM|ToCloudTunnel|FromCloudTunnel|SiteOrgAssociation|Org|OrgVdc|Media|VAppTemplate|VApp|VM|OrgNetwork|AdminOrgNetwork|VAppNetwork|Catalog|AdminVdc|VMWProviderVdc|Network|Group|User|StrandedUser|Role|AllocatedExternalAddress|Event|ResourcePool|Datastore|NetworkPool|Portgroup|DvSwitch|Cell|VirtualCenter|Host|AdminVApp|Right|AdminVM|AdminAllocatedExternalAddress|VAppOrgNetworkRelation|OrgVdcResourcePoolRelation|ProviderVdcResourcePoolRelation|DatastoreProviderVdcRelation|AdminUser|AdminGroup|AdminVAppNetwork|AdminCatalog|AdminCatalogItem|CatalogItem|AdminMedia|AdminVAppTemplate|AdminShadowVM|Task|AdminTask|BlockingTask|Disk|VmDiskRelation|AdminDisk|AdminVmDiskRelation|Condition|AdminEvent|StrandedItem|AdminService|Service|ServiceLink|StorageProfile|OrgVdcStorageProfile|AdminOrgVdcStorageProfile|ProviderVdcStorageProfile|ApiFilter|AdminApiDefinition|ApiDefinition|AdminFileDescriptor|FileDescriptor|ResourceClassAction|AclRule|ResourceClass|ServiceResource|EdgeGateway|OrgVdcNetwork|VAppOrgVdcNetworkRelation|ExternalLocalization|ResourcePoolVM|VmGroupVms|VmGroups|AdminRole|NsxTManager|AdminOrgVdcTemplate|OrgVdcTemplate|GatewayUplinks|Site|SiteAssociation|OrgAssociation)?(Value|RecordType)\.(type\))/s//\1_\2\3\4\5\6._\7/;

/class (Vcloud)?(Metadata|QueryResult)(Typed|String|Number|Boolean|DateTime|LicensingReport|LicensingReportSample|LicensingManagedServer|LicensingVirtualMachine|AdminEventCBM|ToCloudTunnel|FromCloudTunnel|SiteOrgAssociation|Org|OrgVdc|Media|VAppTemplate|VApp|VM|OrgNetwork|AdminOrgNetwork|VAppNetwork|Catalog|AdminVdc|VMWProviderVdc|Network|Group|User|StrandedUser|Role|AllocatedExternalAddress|Event|ResourcePool|Datastore|NetworkPool|Portgroup|DvSwitch|Cell|VirtualCenter|Host|AdminVApp|Right|AdminVM|AdminAllocatedExternalAddress|VAppOrgNetworkRelation|OrgVdcResourcePoolRelation|ProviderVdcResourcePoolRelation|DatastoreProviderVdcRelation|AdminUser|AdminGroup|AdminVAppNetwork|AdminCatalog|AdminCatalogItem|CatalogItem|AdminMedia|AdminVAppTemplate|AdminShadowVM|Task|AdminTask|BlockingTask|Disk|VmDiskRelation|AdminDisk|AdminVmDiskRelation|Condition|AdminEvent|StrandedItem|AdminService|Service|ServiceLink|StorageProfile|OrgVdcStorageProfile|AdminOrgVdcStorageProfile|ProviderVdcStorageProfile|ApiFilter|AdminApiDefinition|ApiDefinition|AdminFileDescriptor|FileDescriptor|ResourceClassAction|AclRule|ResourceClass|ServiceResource|EdgeGateway|OrgVdcNetwork|VAppOrgVdcNetworkRelation|ExternalLocalization|ResourcePoolVM|VmGroupVms|VmGroups|AdminRole|NsxTManager|AdminOrgVdcTemplate|OrgVdcTemplate|GatewayUplinks|Site|SiteAssociation|OrgAssociation)?(RecordType|Value) \{/,$ {
s/(JSON_PROPERTY_)(TYPE = "_type")/\1_\2/;
s/(private|protected)( TypeEnum )(type)/\1\2_\3/;

/sb\.append\("class (Vcloud)?(Metadata|QueryResult)(Typed|String|Number|Boolean|DateTime|LicensingReport|LicensingReportSample|LicensingManagedServer|LicensingVirtualMachine|AdminEventCBM|ToCloudTunnel|FromCloudTunnel|SiteOrgAssociation|Org|OrgVdc|Media|VAppTemplate|VApp|VM|OrgNetwork|AdminOrgNetwork|VAppNetwork|Catalog|AdminVdc|VMWProviderVdc|Network|Group|User|StrandedUser|Role|AllocatedExternalAddress|Event|ResourcePool|Datastore|NetworkPool|Portgroup|DvSwitch|Cell|VirtualCenter|Host|AdminVApp|Right|AdminVM|AdminAllocatedExternalAddress|VAppOrgNetworkRelation|OrgVdcResourcePoolRelation|ProviderVdcResourcePoolRelation|DatastoreProviderVdcRelation|AdminUser|AdminGroup|AdminVAppNetwork|AdminCatalog|AdminCatalogItem|CatalogItem|AdminMedia|AdminVAppTemplate|AdminShadowVM|Task|AdminTask|BlockingTask|Disk|VmDiskRelation|AdminDisk|AdminVmDiskRelation|Condition|AdminEvent|StrandedItem|AdminService|Service|ServiceLink|StorageProfile|OrgVdcStorageProfile|AdminOrgVdcStorageProfile|ProviderVdcStorageProfile|ApiFilter|AdminApiDefinition|ApiDefinition|AdminFileDescriptor|FileDescriptor|ResourceClassAction|AclRule|ResourceClass|ServiceResource|EdgeGateway|OrgVdcNetwork|VAppOrgVdcNetworkRelation|ExternalLocalization|ResourcePoolVM|VmGroupVms|VmGroups|AdminRole|NsxTManager|AdminOrgVdcTemplate|OrgVdcTemplate|GatewayUplinks|Site|SiteAssociation|OrgAssociation)?(Value|RecordType) \{/,/return sb\.toString\(\)/ {
0,/(type)/s//_\1/g;
0,/typeTest/!{0,/typeTest/s/type/_&/};
/JSON_PROPERTY_TYPE = "_type"/,+1 {
s/type/_&/i;
};
0,/(\.JSON_PROPERTY_)(TYPE,?)$/s//\1_\2/;
0,/Objects\.equals\(this\.type,/ {
/Objects\.equals\(this\.type,/s/type/_&/g;
};
0,/\.append\(toIndentedString\(type\)\)/ {
/\.append\(toIndentedString\(type\)\)/s/type/_&/g;
};
/Objects\.hash/s/type[,\)]/_&/;
0,/type\([a-zA-Z]+ type\) \{/ {
/type\([a-zA-Z]+ type\) \{/ {
N;N;
s/type/_&/;
s/\.(type)/\._\1/;
}

/type\(TypeEnum type\)/,/setType\(TypeEnum type\)/ {
N;
s/(JSON_PROPERTY_)(TYPE)/\1_\2/g;
s/(get)(Type)/\1_\2/;
s/(return )(type)/\1_\2/;
s/(set)(Type)/\1_\2/;
s/(type = type)/_\1/;
}

/return Objects\.hash\(/s/(type)/_\1/;
}
}
};
0,/\(JSON_PROPERTY_TYPE\)/ {
/\(JSON_PROPERTY_TYPE\)/ {
N;N;N;N;N;
s/type/_&/i;
s/type = type/_&/;
s/(return )(type)/\1_\2/;
s/getType/get_Type/;
s/setType/set_Type/;
}
};
0,/\(JSON_PROPERTY_TYPE\)/ {
/\(JSON_PROPERTY_TYPE\)/ {
N;N;N;N;N;
s/type/_&/i;
s/type = type/_&/;
s/(return )(type)/\1_\2/;
s/getType/get_Type/;
s/setType/set_Type/;
}
};
}
9 changes: 3 additions & 6 deletions transformer/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ extern crate lazy_static;

use indexmap::IndexMap;
use openapiv3::{Components, OpenAPI, ReferenceOr, SecurityScheme, Tag};
use schema_tweaks::{
metadata_superclass::metadata_superclass, query_parameters::query_parameters,
query_superclass::query_superclass, stub_ovf::stub_ovf,
};
use schema_tweaks::{query_parameters::query_parameters, stub_ovf::stub_ovf};
use std::{collections::BTreeMap, io::Read};
mod info;
mod parsers;
Expand Down Expand Up @@ -43,8 +40,8 @@ fn main() -> Result<()> {
let content_type_mapping =
schemas::schemas(&mut schemas, &mut zip).context("Unable to make content type mappings")?;
stub_ovf(&mut schemas);
metadata_superclass(&mut schemas);
query_superclass(&mut schemas);
//metadata_superclass(&mut schemas);
//query_superclass(&mut schemas);

let content_element_mapping: BTreeMap<String, String> = types::types(&mut zip)
.context("unable to collect types")?
Expand Down
Loading

0 comments on commit 3d70680

Please sign in to comment.