public void fromJSONObject()

in src/main/java/org/apache/sling/feature/extension/apiregions/api/artifacts/VersionRule.java [117:160]


    public void fromJSONObject(final JsonObject jsonObj) throws IOException {
        super.fromJSONObject(jsonObj);
        try {
			String val = this.getString(InternalConstants.KEY_MODE);
			if ( val != null ) {
                this.setMode(Mode.valueOf(val.toUpperCase()));
			}
            
            val = this.getString(InternalConstants.KEY_ARTIFACT_ID);
            if ( val != null ) {
                this.setArtifactId(ArtifactId.parse(val));
            }

            this.setMessage(this.getString(InternalConstants.KEY_MESSAGE));

            String[] arr = this.getStringArray(InternalConstants.KEY_ALLOWED_VERSION_RANGES);
            if ( arr != null && arr.length > 0 ) {
                final VersionRange[] ranges = new VersionRange[arr.length];
                for(int i=0;i<arr.length;i++) {
                    try  {
                        ranges[i] = new VersionRange(arr[i]);
                    } catch ( final IllegalArgumentException iae) {
                        throw new IOException("Illegal argument for allowed version range: " + arr[i]);
                    }
                }
                this.setAllowedVersionRanges(ranges);
            }

            arr = this.getStringArray(InternalConstants.KEY_DENIED_VERSION_RANGES);
            if ( arr != null && arr.length > 0 ) {
                final VersionRange[] ranges = new VersionRange[arr.length];
                for(int i=0;i<arr.length;i++) {
                    try  {
                        ranges[i] = new VersionRange(arr[i]);
                    } catch ( final IllegalArgumentException iae) {
                        throw new IOException("Illegal argument for allowed version range: " + arr[i]);
                    }
                }
                this.setDeniedVersionRanges(ranges);
            }
        } catch (final JsonException | IllegalArgumentException e) {
            throw new IOException(e);
        }
    }