JsonValue deprecationToJSON()

in src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java [229:274]


    JsonValue deprecationToJSON() {
        final Deprecation dep = this.getDeprecation();
        if ( dep.getPackageInfo() != null ) {
            if ( dep.getPackageInfo().getSince() == null && dep.getPackageInfo().getForRemoval() == null && dep.getPackageInfo().getMode() == null) {
                return Json.createValue(dep.getPackageInfo().getMessage());
            } else {
                final JsonObjectBuilder depBuilder = Json.createObjectBuilder();
                depBuilder.add(MSG_KEY, dep.getPackageInfo().getMessage());
                if ( dep.getPackageInfo().getSince() != null ) {
                    depBuilder.add(SINCE_KEY, dep.getPackageInfo().getSince());
                }
                if ( dep.getPackageInfo().getForRemoval() != null ) {
                    depBuilder.add(FOR_REMOVAL_KEY, dep.getPackageInfo().getForRemoval());
                }
                if ( dep.getPackageInfo().getMode() != null ) {
                    depBuilder.add(MODE_KEY, dep.getPackageInfo().getMode().name());
                }
                return depBuilder.build();
            }
        } else if ( !dep.getMemberInfos().isEmpty() ) {
            final JsonObjectBuilder depBuilder = Json.createObjectBuilder();
            final JsonObjectBuilder membersBuilder = Json.createObjectBuilder();
            for(final Map.Entry<String, DeprecationInfo> memberEntry : dep.getMemberInfos().entrySet()) {
                if ( memberEntry.getValue().getSince() == null && memberEntry.getValue().getForRemoval() == null && memberEntry.getValue().getMode() == null ) {
                    membersBuilder.add(memberEntry.getKey(), memberEntry.getValue().getMessage());
                } else {
                    final JsonObjectBuilder mBuilder = Json.createObjectBuilder();
                    mBuilder.add(MSG_KEY, memberEntry.getValue().getMessage());
                    if ( memberEntry.getValue().getSince() != null ) {
                        mBuilder.add(SINCE_KEY, memberEntry.getValue().getSince());
                    }
                    if ( memberEntry.getValue().getForRemoval() != null ) {
                        mBuilder.add(FOR_REMOVAL_KEY, memberEntry.getValue().getForRemoval());
                    }
                    if ( memberEntry.getValue().getMode() != null ) {
                        mBuilder.add(MODE_KEY, memberEntry.getValue().getMode().name());
                    }
                    membersBuilder.add(memberEntry.getKey(), mBuilder);
                }
            }

            depBuilder.add(MEMBERS_KEY, membersBuilder);
            return depBuilder.build();
        }
        return null;
    }