/*
* Copyright 2012 Erlend Hamnaberg
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.hamnaberg.json;
import javaslang.control.Option;
class FromJsonValue {
public static Value createValue(Json.JValue node) {
return node.fold(
j -> Value.of(j.getValue()),
j -> Value.of(j.isValue()),
j -> Value.of(j.getValue()),
j -> {
throw new IllegalArgumentException("Illegal value " + node);
},
j -> {
throw new IllegalArgumentException("Illegal value " + node);
},
() -> Value.NULL
);
}
public static Option<Value> createOptionValue(Json.JValue value) {
Value v = createValue(value);
if (v == Value.NULL) {
return Option.none();
}
return Option.of(v);
}
}