diff options
Diffstat (limited to 'json/src/com/jetbrains/jsonSchema/extension/adapters')
4 files changed, 137 insertions, 0 deletions
diff --git a/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonArrayValueAdapter.java b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonArrayValueAdapter.java new file mode 100644 index 00000000..af247f78 --- /dev/null +++ b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonArrayValueAdapter.java @@ -0,0 +1,32 @@ +/* + * Copyright 2000-2017 JetBrains s.r.o. + * + * 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 com.jetbrains.jsonSchema.extension.adapters; + +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +/** + * @author Irina.Chernushina on 2/20/2017. + */ +public interface JsonArrayValueAdapter extends JsonValueAdapter { + @NotNull List<JsonValueAdapter> getElements(); + + @Override + default boolean isNull() { + return false; + } +} diff --git a/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonObjectValueAdapter.java b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonObjectValueAdapter.java new file mode 100644 index 00000000..627ddf56 --- /dev/null +++ b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonObjectValueAdapter.java @@ -0,0 +1,32 @@ +/* + * Copyright 2000-2017 JetBrains s.r.o. + * + * 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 com.jetbrains.jsonSchema.extension.adapters; + +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +/** + * @author Irina.Chernushina on 2/20/2017. + */ +public interface JsonObjectValueAdapter extends JsonValueAdapter { + @NotNull List<JsonPropertyAdapter> getPropertyList(); + + @Override + default boolean isNull() { + return false; + } +} diff --git a/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonPropertyAdapter.java b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonPropertyAdapter.java new file mode 100644 index 00000000..e82279bf --- /dev/null +++ b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonPropertyAdapter.java @@ -0,0 +1,33 @@ +/* + * Copyright 2000-2017 JetBrains s.r.o. + * + * 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 com.jetbrains.jsonSchema.extension.adapters; + +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; + +/** + * @author Irina.Chernushina on 2/20/2017. + */ +public interface JsonPropertyAdapter { + @Nullable String getName(); + @Nullable JsonValueAdapter getNameValueAdapter(); + @NotNull Collection<JsonValueAdapter> getValues(); + @NotNull PsiElement getDelegate(); + @Nullable JsonObjectValueAdapter getParentObject(); +} diff --git a/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonValueAdapter.java b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonValueAdapter.java new file mode 100644 index 00000000..1d8f2742 --- /dev/null +++ b/json/src/com/jetbrains/jsonSchema/extension/adapters/JsonValueAdapter.java @@ -0,0 +1,40 @@ +/* + * Copyright 2000-2017 JetBrains s.r.o. + * + * 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 com.jetbrains.jsonSchema.extension.adapters; + +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * @author Irina.Chernushina on 2/20/2017. + */ +public interface JsonValueAdapter { + default boolean isShouldBeIgnored() {return false;} + boolean isObject(); + boolean isArray(); + boolean isStringLiteral(); + boolean isNumberLiteral(); + boolean isBooleanLiteral(); + boolean isNull(); + + @NotNull PsiElement getDelegate(); + + @Nullable JsonObjectValueAdapter getAsObject(); + @Nullable JsonArrayValueAdapter getAsArray(); + + default boolean shouldCheckIntegralRequirements() {return true;} +} |