From 579ca6928fcee8d18e6988a2035cc666df7070fe Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Wed, 30 May 2012 14:32:46 +0000 Subject: [PATCH] Add JsonObject and annotate IImageTransformerFactory as JsonObject. SVN: 25407 --- .../cisd/base/annotation/JsonObject.java | 43 +++++++++++++++++++ .../base/image/IImageTransformerFactory.java | 3 ++ 2 files changed, 46 insertions(+) create mode 100644 source/java/ch/systemsx/cisd/base/annotation/JsonObject.java diff --git a/source/java/ch/systemsx/cisd/base/annotation/JsonObject.java b/source/java/ch/systemsx/cisd/base/annotation/JsonObject.java new file mode 100644 index 00000000000..abf69e3a7fa --- /dev/null +++ b/source/java/ch/systemsx/cisd/base/annotation/JsonObject.java @@ -0,0 +1,43 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * 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 ch.systemsx.cisd.base.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation all JSON transfered classes should be marked with. It was originally created to + * replace @JsonTypeName annotation which was not visible in the documentation. With @JsonTypeName + * annotation it would be impossible for our users to find a logical type name of a class to be sent + * to JSON-RPC services. + * + * @author pkupczyk + */ +@Target( + { ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface JsonObject +{ + /** + * Logical type name for annotated type. + */ + public String value(); +} diff --git a/source/java/ch/systemsx/cisd/base/image/IImageTransformerFactory.java b/source/java/ch/systemsx/cisd/base/image/IImageTransformerFactory.java index 5a7e61ca7f8..c0c76a2a3f6 100644 --- a/source/java/ch/systemsx/cisd/base/image/IImageTransformerFactory.java +++ b/source/java/ch/systemsx/cisd/base/image/IImageTransformerFactory.java @@ -18,12 +18,15 @@ package ch.systemsx.cisd.base.image; import java.io.Serializable; +import ch.systemsx.cisd.base.annotation.JsonObject; + /** * Factory creating an {@link IImageTransformer}. The parameters of the transformer should be * stored as serializable attributes of concrete implementations of this interface. * * @author Franz-Josef Elmer */ +@JsonObject(value="IImageTransformerFactory") public interface IImageTransformerFactory extends Serializable { /** -- GitLab