public static <V> Overlay<V> of(JsonOverlay<V> overlay) { return new Overlay<V>(overlay); }
public static <V> Overlay<V> of(ListOverlay<V> list, int index) { return new Overlay<V>(list, index); }
public static <X> Overlay<X> of(PropertiesOverlay<?> props, String fieldName, Class<X> type) { return new Overlay<X>(props, fieldName); }
public static <V> Overlay<V> of(MapOverlay<V> map, String key) { return new Overlay<V>(map, key); }
public static <V> Overlay<V> of(IJsonOverlay<V> overlay) { return new Overlay<V>(overlay); }
public static <V> Overlay<Map<String, V>> of(MapOverlay<V> overlay) { return new Overlay<Map<String, V>>(overlay); }
public static <V> Overlay<List<V>> of(ListOverlay<V> overlay) { return new Overlay<List<V>>(overlay); }
public static <V> Overlay<List<V>> of(List<V> list) { ListOverlay<V> overlay = getSidebandOverlay(list); return overlay != null ? new Overlay<List<V>>(overlay) : null; }
public static <V> Overlay<Map<String, V>> of(Map<String, V> map) { MapOverlay<V> overlay = getSidebandOverlay(map); return overlay != null ? new Overlay<Map<String, V>>(overlay) : null; }
public static <V> boolean isReference(JsonOverlay<V> overlay, String key) { return new Overlay<V>(overlay).isReference(key); }
public static <V> boolean isReference(JsonOverlay<V> overlay, int index) { return new Overlay<V>(overlay).getReference(index) != null; }
public static <V> PropertiesOverlay<?> getParentPropertiesOverlay(JsonOverlay<V> overlay) { return new Overlay<V>(overlay).getParentPropertiesOverlay(); }
public static <Model, V> Model getModel(JsonOverlay<V> overlay) { return new Overlay<V>(overlay).getModel(); }
public static <V> List<String> getPropertyNames(JsonOverlay<V> overlay) { return new Overlay<V>(overlay).getPropertyNames(); }
public static <V> Reference getReference(JsonOverlay<V> overlay, String key) { return new Overlay<V>(overlay).getReference(key); }
public static <V> Reference getReference(JsonOverlay<V> overlay, int index) { return new Overlay<V>(overlay).getReference(index); }
public Overlay<V> getReferenceOverlay() { RefOverlay<V> refOverlay = overlay._getRefOverlay(); return refOverlay != null ? new Overlay<V>(refOverlay.getOverlay()) : null; }