You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2022/06/27 08:18:33 UTC
[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-11420 remove unused classes for DocView serialisation
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/remove-unused-classes
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git
commit 2c89edfbf9a0b81938659f2baf71aecb0e585b43
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jun 27 10:18:26 2022 +0200
SLING-11420 remove unused classes for DocView serialisation
remove invalid @NotNull annotations on primitive types
---
...BundleSlingInitialContentJarEntryExtractor.java | 31 +-
...InitialContentBundleEntryMetaDataCollector.java | 4 +-
.../vltpkg/DocViewSerializerContentHandler.java | 179 --------
.../DocViewSerializerContentHandlerException.java | 39 --
.../feature/cpconverter/vltpkg/ValueConverter.java | 494 ---------------------
5 files changed, 17 insertions(+), 730 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/BundleSlingInitialContentJarEntryExtractor.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/BundleSlingInitialContentJarEntryExtractor.java
index 25d31d2..2684d5d 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/BundleSlingInitialContentJarEntryExtractor.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/BundleSlingInitialContentJarEntryExtractor.java
@@ -16,20 +16,8 @@
*/
package org.apache.sling.feature.cpconverter.handlers.slinginitialcontent;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.util.Text;
-import org.apache.jackrabbit.vault.fs.io.Archive;
-import org.apache.jackrabbit.vault.util.PlatformNameFormat;
-import org.apache.sling.feature.cpconverter.ConverterException;
-import org.apache.sling.feature.cpconverter.vltpkg.DocViewSerializerContentHandlerException;
-import org.apache.sling.feature.cpconverter.vltpkg.SingleFileArchive;
-import org.apache.sling.feature.cpconverter.vltpkg.VaultPackageAssembler;
-import org.apache.sling.jcr.contentloader.ContentReader;
-import org.apache.sling.jcr.contentloader.PathEntry;
-import org.jetbrains.annotations.NotNull;
+import static org.apache.sling.feature.cpconverter.shared.ConverterConstants.SLASH;
-import javax.jcr.RepositoryException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -40,7 +28,19 @@ import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Set;
-import static org.apache.sling.feature.cpconverter.shared.ConverterConstants.SLASH;
+import javax.jcr.RepositoryException;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.jackrabbit.util.Text;
+import org.apache.jackrabbit.vault.fs.io.Archive;
+import org.apache.jackrabbit.vault.util.PlatformNameFormat;
+import org.apache.sling.feature.cpconverter.ConverterException;
+import org.apache.sling.feature.cpconverter.vltpkg.SingleFileArchive;
+import org.apache.sling.feature.cpconverter.vltpkg.VaultPackageAssembler;
+import org.apache.sling.jcr.contentloader.ContentReader;
+import org.apache.sling.jcr.contentloader.PathEntry;
+import org.jetbrains.annotations.NotNull;
/**
* Handles the bundle sling initial content extraction on the jarEntry level.
@@ -105,7 +105,7 @@ class BundleSlingInitialContentJarEntryExtractor {
} catch (IOException e) {
throw new IOException("Can not parse " + file, e);
- } catch (DocViewSerializerContentHandlerException | RepositoryException e) {
+ } catch (RepositoryException e) {
throw new IOException("Can not convert " + file + " to enhanced DocView format", e);
}
@@ -136,7 +136,6 @@ class BundleSlingInitialContentJarEntryExtractor {
}
}
- @NotNull
private boolean isFileDescriptor(@NotNull Set<SlingInitialContentBundleEntryMetaData> bundleEntries, @NotNull final String contentPackageEntryPath) {
//sometimes we are dealing with double extensions (.json.xml)
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/SlingInitialContentBundleEntryMetaDataCollector.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/SlingInitialContentBundleEntryMetaDataCollector.java
index 9b0bb8a..dfe834f 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/SlingInitialContentBundleEntryMetaDataCollector.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/SlingInitialContentBundleEntryMetaDataCollector.java
@@ -148,8 +148,8 @@ class SlingInitialContentBundleEntryMetaDataCollector {
}
}
- private void safelyWriteOutputStream(@NotNull long compressedSize,
- @NotNull byte[] data,
+ private void safelyWriteOutputStream(long compressedSize,
+ byte[] data,
@NotNull InputStream input,
@NotNull OutputStream fos,
boolean shouldClose) throws IOException {
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/DocViewSerializerContentHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/DocViewSerializerContentHandler.java
deleted file mode 100644
index 672650a..0000000
--- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/DocViewSerializerContentHandler.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You 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 org.apache.sling.feature.cpconverter.vltpkg;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.commons.conversion.IllegalNameException;
-import org.apache.jackrabbit.spi.commons.conversion.NameParser;
-import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
-import org.apache.jackrabbit.util.Text;
-import org.apache.jackrabbit.vault.fs.impl.io.DocViewSAXFormatter;
-import org.apache.jackrabbit.vault.fs.io.DocViewFormat;
-import org.apache.jackrabbit.vault.util.xml.serialize.FormattingXmlStreamWriter;
-import org.apache.sling.contentparser.api.ContentHandler;
-import org.jetbrains.annotations.NotNull;
-
-import javax.jcr.NamespaceException;
-import javax.jcr.RepositoryException;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.AbstractMap;
-import java.util.Map;
-
-import static org.apache.commons.lang3.StringUtils.isNotBlank;
-
-/**
- * Similar to {@link DocViewSAXFormatter} but works outside a repository-based context on the input generated through {@link ContentHandler} callbacks.
- * Throws {@link DocViewSerializerContentHandlerException} in case serialization fails for some reason.
- */
-public class DocViewSerializerContentHandler implements ContentHandler, AutoCloseable {
-
- private final XMLStreamWriter writer;
- private final JcrNamespaceRegistry nsRegistry;
- private String currentPath = "/";
- boolean isFirstElement = true;
-
- public DocViewSerializerContentHandler(OutputStream outputStream, JcrNamespaceRegistry nsRegistry) {
- this.nsRegistry = nsRegistry;
- try {
- writer = FormattingXmlStreamWriter.create(outputStream, new DocViewFormat().getXmlOutputFormat());
- writer.writeStartDocument();
- writer.setNamespaceContext(nsRegistry);
-
- } catch (XMLStreamException e) {
- throw new DocViewSerializerContentHandlerException("Can not start document", e);
- }
- }
-
- @Override
- public void resource(String path, Map<String, Object> properties) {
- // split path in parent and name
- String parent = Text.getRelativeParent(path, 1);
- String name = Text.getName(path);
- if (name.isEmpty()) {
- name = "jcr:root";
- }
-
- if (!parent.equals(currentPath)) {
- closeParents(parent);
- }
- currentPath = path;
- try {
- // now split by prefix and local name
- Map.Entry<String, Name> prefixAndQualifiedName = resolvePrefixedName(name);
- writeElement(prefixAndQualifiedName);
-
- if (isFirstElement) {
- for (String prefix : nsRegistry.getPrefixes()) {
- writer.writeNamespace(prefix, nsRegistry.getURI(prefix));
- }
- isFirstElement = false;
- }
- for (Map.Entry<String, Object> property : properties.entrySet()) {
- // now split by prefix and local name
- prefixAndQualifiedName = resolvePrefixedName(property.getKey());
- writer.writeAttribute(
- prefixAndQualifiedName.getKey(),
- prefixAndQualifiedName.getValue().getNamespaceURI(),
- prefixAndQualifiedName.getValue().getLocalName(),
- ValueConverter.toString(property.getKey(), property.getValue())
- );
- }
- } catch (XMLStreamException e) {
- throw new DocViewSerializerContentHandlerException("Can not start element", e);
- } catch (RepositoryException e) {
- throw new DocViewSerializerContentHandlerException("Can not emit namespace declarations", e);
- }
- }
-
- private boolean writeElement(Map.Entry<String, Name> prefixAndQualifiedName) throws XMLStreamException {
-
- String key = prefixAndQualifiedName.getKey();
- String namespaceURI = prefixAndQualifiedName.getValue().getNamespaceURI();
- String localName = getValidLocalName(prefixAndQualifiedName);
-
- if (isNotBlank(localName)) {
- if (isNotBlank(namespaceURI) && isNotBlank(nsRegistry.getPrefix(namespaceURI)) && isNotBlank(key)) {
- //uri already registered in context, this method will do
- writer.writeStartElement(namespaceURI, localName);
- } else if (isNotBlank(namespaceURI) && isNotBlank(key)) {
- //uri not registered in context, so writing it out completely
- writer.writeStartElement(key, namespaceURI, localName);
- } else {
- writer.writeStartElement(localName);
- }
- } else {
- return false;
- }
-
- return true;
- }
-
- @NotNull
- private String getValidLocalName(Map.Entry<String, Name> prefixAndQualifiedName) {
- String localName = prefixAndQualifiedName.getValue().getLocalName();
-
- String firstCharacter = localName.substring(0, 1);
- if (StringUtils.isNumeric(firstCharacter)) {
- //fix localName starting out with numbers as this is illegal.
- localName = "_x003" + firstCharacter + "_" + StringUtils.substring(localName, 1);
- }
- return localName;
- }
-
- public void closeParents(String stopAtParent) {
- try {
- while (!currentPath.equals(stopAtParent)) {
- writer.writeEndElement();
- String newCurrentPath = Text.getRelativeParent(currentPath, 1);
- if (newCurrentPath.equals(currentPath)) {
- break;
- } else {
- currentPath = newCurrentPath;
- }
- }
- } catch (XMLStreamException e) {
- throw new DocViewSerializerContentHandlerException("Can not end element", e);
- }
- }
-
- Map.Entry<String, Name> resolvePrefixedName(String name) {
- int posColon = name.indexOf(':');
- if (posColon == -1) {
- return new AbstractMap.SimpleEntry<>("", NameFactoryImpl.getInstance().create(Name.NS_DEFAULT_URI, name));
- }
- try {
- String prefix = name.substring(0, posColon);
- return new AbstractMap.SimpleEntry<>(prefix, NameParser.parse(name, nsRegistry, NameFactoryImpl.getInstance()));
- } catch (IllegalNameException | NamespaceException e) {
- throw new DocViewSerializerContentHandlerException("Could not resolve namespace URI for name " + name, e);
- }
- }
-
- @Override
- public void close() throws IOException {
- try {
- closeParents("");
- writer.writeEndDocument();
- } catch (XMLStreamException e) {
- throw new DocViewSerializerContentHandlerException("Can not end document", e);
- }
- }
-}
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/DocViewSerializerContentHandlerException.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/DocViewSerializerContentHandlerException.java
deleted file mode 100644
index 6f9d911..0000000
--- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/DocViewSerializerContentHandlerException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You 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 org.apache.sling.feature.cpconverter.vltpkg;
-
-public class DocViewSerializerContentHandlerException extends RuntimeException {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DocViewSerializerContentHandlerException(String message, Throwable cause, boolean enableSuppression,
- boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-
- public DocViewSerializerContentHandlerException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public DocViewSerializerContentHandlerException(String message) {
- super(message);
- }
-
-}
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/ValueConverter.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/ValueConverter.java
deleted file mode 100644
index 7b59ab7..0000000
--- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/ValueConverter.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You 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 org.apache.sling.feature.cpconverter.vltpkg;
-
-import java.io.InputStream;
-import java.lang.reflect.Array;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.UUID;
-
-import javax.jcr.Binary;
-import javax.jcr.Item;
-import javax.jcr.ItemVisitor;
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.Value;
-import javax.jcr.ValueFormatException;
-import javax.jcr.nodetype.NodeType;
-import javax.jcr.nodetype.PropertyDefinition;
-
-import org.apache.jackrabbit.util.ISO8601;
-import org.apache.jackrabbit.vault.util.DocViewProperty;
-
-/**
- * Converts an value to string for a content property in XML including type prefix.
- * Is a temporary helper which can be removed once https://issues.apache.org/jira/browse/JCRVLT-516 is solved.
- */
-final class ValueConverter {
-
- static final String PN_PRIVILEGES = "rep:privileges";
-
- private ValueConverter() {
- // only static methods
- }
- /**
- * Converts an object to a string representation.
- * Supported are String, Boolean, Integer, Long, Double, BigDecimal, Date, Calendar and arrays of them.
- * @param value value
- * @return Converted value
- */
- public static String toString(String propertyName, Object value) {
- if (value == null) {
- return "";
- }
-
- Value[] values;
- boolean multiple = value.getClass().isArray();
- if (multiple) {
- values = new Value[Array.getLength(value)];
- int lastPropertyType = PropertyType.UNDEFINED;
- for (int i = 0; i < values.length; i++) {
- values[i] = toValue(propertyName, Array.get(value, i));
- if (lastPropertyType == PropertyType.UNDEFINED) {
- lastPropertyType = values[i].getType();
- }
- else if (lastPropertyType != values[i].getType()) {
- throw new RuntimeException("Mixing different value types within array not allowed: " +
- PropertyType.nameFromValue(lastPropertyType) + ", " + PropertyType.nameFromValue(values[i].getType())
- + ", propertyName=" + propertyName + ", value=" + value);
- }
- }
- }
- else {
- values = new Value[] { toValue(propertyName, value) };
- }
-
- Property prop = new MockProperty(propertyName, multiple, values);
- try {
- return DocViewProperty.format(prop);
- }
- catch (RepositoryException ex) {
- throw new RuntimeException("Unable to format property value (" + propertyName + "): " + value, ex);
- }
- }
-
- private static Value toValue(String propertyName, Object value) {
- if (value instanceof String) {
- if (PN_PRIVILEGES.equals(propertyName)) {
- return new MockValue(value.toString(), PropertyType.NAME);
- }
- else {
- return new MockValue(value.toString(), PropertyType.STRING);
- }
- }
- if (value instanceof Boolean) {
- return new MockValue(((Boolean)value).toString(), PropertyType.BOOLEAN);
- }
- if (value instanceof Integer || value instanceof Long) {
- return new MockValue(Long.toString(((Number)value).longValue()), PropertyType.LONG);
- }
- if (value instanceof Float || value instanceof Double) {
- return new MockValue(Double.toString(((Number)value).doubleValue()), PropertyType.DECIMAL);
- }
- if (value instanceof BigDecimal) {
- return new MockValue(((BigDecimal)value).toString(), PropertyType.DECIMAL);
- }
- if (value instanceof Date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime((Date)value);
- return new MockValue(ISO8601.format(calendar), PropertyType.DATE);
- }
- if (value instanceof Calendar) {
- return new MockValue(ISO8601.format((Calendar)value), PropertyType.DATE);
- }
- if (value instanceof UUID) {
- return new MockValue(((UUID)value).toString(), PropertyType.REFERENCE);
- }
- if (value instanceof URI) {
- return new MockValue(((URI)value).toString(), PropertyType.URI);
- }
- throw new IllegalArgumentException("Type not supported: " + value.getClass().getName());
- }
-
-
- /**
- * Mock implementations of JCR property and value to be handed over to {@link DocViewProperty#format(Property)}
- * method.
- */
- private static class MockProperty implements Property, PropertyDefinition {
-
- private final String name;
- private final boolean multiple;
- private final Value[] values;
-
- MockProperty(String name, boolean multiple, Value[] values) {
- this.name = name;
- this.multiple = multiple;
- this.values = values;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public int getType() {
- if (values.length > 0) {
- return values[0].getType();
- }
- return PropertyType.UNDEFINED;
- }
-
- @Override
- public boolean isMultiple() {
- return multiple;
- }
-
- @Override
- public Value getValue() throws ValueFormatException {
- if (multiple) {
- throw new ValueFormatException("Property is multiple.");
- }
- return values[0];
- }
-
- @Override
- public Value[] getValues() throws ValueFormatException {
- if (!multiple) {
- throw new ValueFormatException("Property is not multiple.");
- }
- return values;
- }
-
- @Override
- public PropertyDefinition getDefinition() {
- return this;
- }
-
-
- // -- unsupported methods --
-
- @Override
- public String getPath() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Item getAncestor(int depth) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Node getParent() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getDepth() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Session getSession() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isNode() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isNew() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isModified() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isSame(Item otherItem) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void accept(ItemVisitor visitor) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void save() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void refresh(boolean keepChanges) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(Value value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(Value[] value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(String value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(String[] value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(InputStream value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(Binary value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(long value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(double value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(BigDecimal value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(Calendar value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(boolean value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setValue(Node value) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getString() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public InputStream getStream() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Binary getBinary() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long getLong() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public double getDouble() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public BigDecimal getDecimal() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Calendar getDate() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean getBoolean() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Node getNode() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Property getProperty() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long getLength() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long[] getLengths() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public NodeType getDeclaringNodeType() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isAutoCreated() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isMandatory() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getOnParentVersion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isProtected() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getRequiredType() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String[] getValueConstraints() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Value[] getDefaultValues() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String[] getAvailableQueryOperators() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isFullTextSearchable() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isQueryOrderable() {
- throw new UnsupportedOperationException();
- }
-
- }
-
- private static class MockValue implements Value {
-
- private final String value;
- private final int type;
-
- MockValue(String value, int type) {
- this.value = value;
- this.type = type;
- }
-
- @Override
- public String getString() throws ValueFormatException, IllegalStateException, RepositoryException {
- return value;
- }
-
- @Override
- public int getType() {
- return type;
- }
-
-
- // -- unsupported methods --
-
- @Override
- public InputStream getStream() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Binary getBinary() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long getLong() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public double getDouble() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public BigDecimal getDecimal() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Calendar getDate() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean getBoolean() {
- throw new UnsupportedOperationException();
- }
-
- }
-
-}
\ No newline at end of file