All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xapi.annotation.model.ServerToClient Maven / Gradle / Ivy

Go to download

Everything needed to run a comprehensive dev environment. Just type X_ and pick a service from autocomplete; new dev modules will be added as they are built. The only dev service not included in the uber jar is xapi-dev-maven, as it includes all runtime dependencies of maven, adding ~4 seconds to build time, and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).

The newest version!
package xapi.annotation.model;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * Annotation specifying that a field or class requires serializing from Model
 * to String, in order to send to the server.
 *
 * This can be applied to interfaces, classes, methods or fields, though using
 * field-level concrete classes breaks compatibility;
 * you should stick to interfaces + methods, and avoid classes + fields.
 *
 * Applying this to the class makes every field in the model serializable on
 * the client, and you will have to use {@link ClientToServer#enabled()} = false
 * to strictly disable any fields.
 *
 * This makes it easy to add client-only fields that can be used on the server,
 * provided your interface is in a shared lib.  If you need to hide client-only
 * fields, manually call .setProperty(String, Object) on your models.
 *
 * @author "James X. Nelson ([email protected])"
 *
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({}) // Must be placed inside a @Serializable annotation
public @interface ServerToClient {

  SerializationStrategy serializer() default SerializationStrategy.ProtoStream;

  boolean enabled() default true;

  boolean encrypted() default false;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy