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

xapi.annotation.model.Serializable 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.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *
 * Marking fields or methods as serializable will cause them to be serialized upon HTTP requests.
 *
 * This annotation allows control over whether a value may move from server to client, or vice versa.
 * This is useful to prevent leaking sensitive data to clients, or to prevent sending useless data to server.
 *
 * By default, all non-android JRE environments are considered servers.
 * See {@link xapi.util.X_Properties#isServer} for details on determining if a runtime is a server or not.
 *
 * If you wish to make a non-serializable field;
 * set both {@link #clientToServer()} and {@link #serverToClient()} to false;
 *
 * @author James X. Nelson ([email protected])
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Serializable {

  /**
   * @return true to obfuscate values before serialization.
   *
   * The default obfuscator will use a one-time pad to hash your values.
   */
  public boolean obfuscated() default false;

  ClientToServer clientToServer() default @ClientToServer;

  ServerToClient serverToClient() default @ServerToClient;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy