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

net.sf.eBus.messages.package-info Maven / Gradle / Ivy

There is a newer version: 7.6.0
Show newest version
//
// Copyright 2012 Charles W. Rapp
//
// 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.
//

/**
 * Messages are the heart of eBus. The {@code net.sf.eBus.client}
 * API is about sending and receiving messages. This package
 * defines the eBus classes used to implement messages. This
 * includes the abstract
 * {@link net.sf.eBus.messages.EMessageObject},
 * {@link net.sf.eBus.messages.EMessageHeader},
 * {@link net.sf.eBus.messages.EMessage}, and
 * {@link net.sf.eBus.messages.EField}
 * classes combined with the
 * {@link net.sf.eBus.messages.EReplyInfo} annotation used to
 * define messages allowed to reply to a request message..
 * {@link net.sf.eBus.messages.EMessage EMessage} is the abstract
 * base class for all actual messages. eBus messages are defined
 * by:
 * 
    *
  1. * extending {@code ENotifyMessage}, {@code ERequestMessage}, * or {@code EReplyMessage} *
  2. *
  3. * defining the message fields as {@code public final} data * members, *
  4. *
  5. * supplying the required builder inner class. *
  6. *
* The data member types are limited to Java primitives or the * equivalent classes * ({@code boolean}/{@code Boolean}, {@code char} * {@code Character}, {@code int}/{@code Integer}, etc.), * supported Java classes ({@link java.lang.String}, * {@link java.util.Date}, {@link java.math.BigDecimal}, etc.) or * a class which extends the * {@link net.sf.eBus.messages.EField EField} class. *

* All user-defined message and {@code EField} subclasses must * provide a builder inner class. This builder is used to * re-create the message from its serialized format. See * {@link net.sf.eBus.messages.EMessageObject} for detailed * examples explaining this "de-serialization" builder. *

*

* User-defined fields are classes which extend * {@link net.sf.eBus.messages.EField EField} class. Fields have * the same requirements as an eBus message: {@code public final} * fields with an eBus-supported data type, and a * {@code public static} de-serialization inner class. *

*/ package net.sf.eBus.messages;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy