
net.sf.eBus.messages.package-info Maven / Gradle / Ivy
//
// 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:
*
* -
* extending {@code ENotifyMessage}, {@code ERequestMessage},
* or {@code EReplyMessage}
*
* -
* defining the message fields as {@code public final} data
* members,
*
* -
* supplying the required builder inner class.
*
*
* 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