You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2010/04/25 23:55:11 UTC
svn commit: r937896 - in
/myfaces/extensions/cdi/trunk/jse-modules/message-module:
api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/
api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/payload/
impl/src/main/java/org/apache/m...
Author: gpetracek
Date: Sun Apr 25 21:55:11 2010
New Revision: 937896
URL: http://svn.apache.org/viewvc?rev=937896&view=rev
Log:
[EXTCDI-21] javadoc and minor improvements
Added:
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Default.java
Modified:
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/CompositeMessageHandler.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/ConfigRegistry.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Formatter.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/FormatterFactory.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/GenericConfig.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/LocaleResolver.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Localizable.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Message.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContext.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextAware.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfig.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfigAware.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageHandler.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageWithSeverity.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/NamedArgument.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/payload/MessagePayloadKey.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageContextConfig.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NamedArguments.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/DefaultNumberFormatter.java
myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/ToStringFormatter.java
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/AbstractMessage.java Sun Apr 25 21:55:11 2010
@@ -33,7 +33,7 @@ import java.util.Collections;
/**
* @author Gerhard Petracek
*/
-public abstract class AbstractMessage implements Message, MessageContextConfigAware
+public abstract class AbstractMessage implements Message, MessageContextConfigAware<Message>
{
protected String messageTemplate;
protected Set<NamedArgument> namedArguments = new HashSet<NamedArgument>();
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/CompositeMessageHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/CompositeMessageHandler.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/CompositeMessageHandler.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/CompositeMessageHandler.java Sun Apr 25 21:55:11 2010
@@ -21,6 +21,9 @@ package org.apache.myfaces.extensions.cd
import java.util.List;
/**
+ * allows to add message filters to all message handlers via the fluent api easily
+ * (just one handler is exposed via the api)
+ *
* @author Gerhard Petracek
*/
public interface CompositeMessageHandler extends MessageHandler
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/ConfigRegistry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/ConfigRegistry.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/ConfigRegistry.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/ConfigRegistry.java Sun Apr 25 21:55:11 2010
@@ -21,13 +21,21 @@ package org.apache.myfaces.extensions.cd
import java.util.List;
/**
- * TODO
+ * generic interface to add configs (for all artifacts which are configureable)
*
* @author Gerhard Petracek
*/
public interface ConfigRegistry<T, B>
{
- B add(T t);
+ /**
+ * @param config typed config
+ * @return the current instance for using fluent configuration
+ */
+ B add(T config);
+ /**
+ * resets the existing configuration
+ * @return the config which was removed
+ */
List<T> reset();
}
Added: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Default.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Default.java?rev=937896&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Default.java (added)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Default.java Sun Apr 25 21:55:11 2010
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.myfaces.extensions.cdi.message.api;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * marker for default implementations (e.g. formatters) to allow a different handling (if needed)
+ *
+ * @author Gerhard Petracek
+ */
+@Target({TYPE})
+@Retention(RUNTIME)
+public @interface Default
+{
+}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Formatter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Formatter.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Formatter.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Formatter.java Sun Apr 25 21:55:11 2010
@@ -19,14 +19,27 @@
package org.apache.myfaces.extensions.cdi.message.api;
/**
+ * usually a formatter is responsible for one type and allows to format
+ * this type as string
+ *
* @author Gerhard Petracek
+ * @author Manfred Geiler
*/
public interface Formatter<T>
{
+ /**
+ * answers the question if the instance is able to format an object of the given type
+ * @param type the type of the instance which has to be formatted
+ * @return true to signal that the formatter is responsible for formatting the given type
+ */
boolean isResponsibleFor(Class<?> type);
+ /**
+ * formats the given instance as string
+ *
+ * @param messageContext current message context
+ * @param valueToFormat an instance which should be formatted
+ * @return the formatted result as string
+ */
String format(MessageContext messageContext, T valueToFormat);
-
- //TODO
- boolean isDefault();
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/FormatterFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/FormatterFactory.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/FormatterFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/FormatterFactory.java Sun Apr 25 21:55:11 2010
@@ -22,17 +22,40 @@ import java.io.Serializable;
import java.util.Locale;
/**
+ * creates and initialize a formatter for a given type
+ *
* @author Gerhard Petracek
*/
public interface FormatterFactory extends ConfigRegistry<Formatter, FormatterFactory>, Serializable
{
+ /**
+ * @param type the type of the instance which has to be formatted
+ * @return an initialized formatter which is able to format instances of the given type (or a default formatter)
+ */
Formatter findFormatter(Class<?> type);
- void addFormatterConfig(Class<?> type, GenericConfig formatterConfig);
+ /**
+ * allows to add a config for formatting the given type
+ *
+ * @param type the type the config belongs to
+ * @param formatterConfig config for the formatter of the given type
+ * @return the instance of the factory to allow a fluent api
+ */
+ FormatterFactory addFormatterConfig(Class<?> type, GenericConfig formatterConfig);
- void addFormatterConfig(Class<?> type, GenericConfig formatterConfig, Locale locale);
+ /**
+ * allows to add a config for formatting the given type
+ *
+ * @param type the type the config belongs to
+ * @param formatterConfig config for the formatter of the given type
+ * @param locale the locale the config belongs to
+ * @return the instance of the factory to allow a fluent api
+ */
+ FormatterFactory addFormatterConfig(Class<?> type, GenericConfig formatterConfig, Locale locale);
/**
+ * @param type the type which has to be formatted and maybe need a config for it
+ * @param locale the current locale
* @return the config for a given type and locale - null otherwise
*/
GenericConfig findFormatterConfig(Class<?> type, Locale locale);
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/GenericConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/GenericConfig.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/GenericConfig.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/GenericConfig.java Sun Apr 25 21:55:11 2010
@@ -21,15 +21,37 @@ package org.apache.myfaces.extensions.cd
import java.io.Serializable;
/**
+ * a key/value based config
+ *
* @author Gerhard Petracek
*/
public interface GenericConfig extends Serializable
{
+ /**
+ * to add a key/value pair to the config
+ *
+ * @param key key for the current value
+ * @param value value for the current key
+ * @return the instance of the config to allow a fluent api
+ */
GenericConfig addProperty(String key, Serializable value);
+ /**
+ * @param key the key of the value in question
+ * @return the value for the given key - null otherwise
+ */
Serializable getProperty(String key);
+ /**
+ * @param key the key of the value in question
+ * @param targetType type of the expected value
+ * @return the value for the given key - null otherwise
+ */
<T extends Serializable> T getProperty(String key, Class<T> targetType);
+ /**
+ * @param key the key of the value in question
+ * @return true if a value for the given key is available - false otherwise
+ */
boolean containsProperty(String key);
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/LocaleResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/LocaleResolver.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/LocaleResolver.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/LocaleResolver.java Sun Apr 25 21:55:11 2010
@@ -25,5 +25,8 @@ import java.util.Locale;
*/
public interface LocaleResolver
{
+ /**
+ * @return the current locale
+ */
Locale getLocale();
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Localizable.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Localizable.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Localizable.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Localizable.java Sun Apr 25 21:55:11 2010
@@ -23,5 +23,9 @@ package org.apache.myfaces.extensions.cd
*/
public interface Localizable
{
+ /**
+ * @param messageContext the current context
+ * @return the text which represents the current instance for the given message context
+ */
String toString(MessageContext messageContext);
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Message.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Message.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Message.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/Message.java Sun Apr 25 21:55:11 2010
@@ -24,17 +24,34 @@ import java.io.Serializable;
import java.util.Map;
/**
+ * @author Manfred Geiler
* @author Gerhard Petracek
*/
public interface Message extends Localizable, Serializable
{
+ /**
+ * @return the message template (or inline-text) of the current message
+ */
String getTemplate();
+ /**
+ * @return all named and numbered arguments
+ */
Serializable[] getArguments();
+ /**
+ * @param arguments 1-n new arguments for the current message
+ */
void addArgument(Serializable... arguments);
+ /**
+ * @return the payload of the message
+ */
Map<Class, Class<? extends MessagePayload>> getPayload();
+ /**
+ * @param key of the payload
+ * @param payload value of the payload
+ */
void addPayload(Class key, Class<? extends MessagePayload> payload);
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContext.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContext.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContext.java Sun Apr 25 21:55:11 2010
@@ -27,40 +27,93 @@ import java.io.Serializable;
*/
public interface MessageContext extends LocaleResolver, MessageHandler, Serializable
{
+ /**
+ * @return message builder to add and/or create a new message based on the current context via a fluent api
+ */
MessageBuilder message();
+ /**
+ * @return the current config to change it or create a new one base on the current config
+ */
MessageContextConfig config();
+ /**
+ * @param contextType the type of the custom implementation
+ * @return the instance of the current message context to use the api of the concrete implementation
+ */
<T extends MessageContext> T typed(Class<T> contextType);
/*
* convenient methods
*/
+ /**
+ * @return creates a new context based on the current one
+ */
MessageContext cloneContext();
+ /**
+ * @param message the message which should be converted to the final text
+ * @return the final text generated via the current message context
+ */
String getMessageText(Message message);
+ /**
+ * @param message a message which should be added to the current context (message handlers)
+ */
void addMessage(Message message);
interface MessageBuilder
{
+ /**
+ * @param messagePayload payload for the current message
+ * @return the current instance of the message builder to allow a fluent api
+ */
MessageBuilder payload(Class<? extends MessagePayload>... messagePayload);
+ /**
+ * @param messageTemplate message template (or inline-text) for the current message
+ * @return the current instance of the message builder to allow a fluent api
+ */
MessageBuilder text(String messageTemplate);
+ /**
+ * @param arguments numbered and/or named argument(s) for the current message
+ * @return the current instance of the message builder to allow a fluent api
+ */
MessageBuilder argument(Serializable... arguments);
+ /**
+ * helper method to add named arguments easily
+ * @param name the name/key of the named argument
+ * @param value the value of the named argument
+ * @return the current instance of the message builder to allow a fluent api
+ */
MessageBuilder namedArgument(String name, Serializable value);
//see MessageContext for add(Message)
+ /**
+ * adds the message which was built via the fluent api
+ * @return the message which was built via the fluent api
+ */
Message add();
+ /**
+ * @return the message which was built via the fluent api
+ */
Message create();
+ /**
+ * @return the text of the message which was built via the fluent api
+ */
String toText();
+ /**
+ * converts a given message to the text via the current context
+ * @param message the message which should be converted
+ * @return the converted text of the given message
+ */
String toText(Message message);
}
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextAware.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextAware.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextAware.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextAware.java Sun Apr 25 21:55:11 2010
@@ -25,6 +25,9 @@ package org.apache.myfaces.extensions.cd
*/
public interface MessageContextAware
{
+ /**
+ * @param messageContext instance of the current message-context
+ */
void setMessageContext(MessageContext messageContext);
MessageContext getMessageContext();
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfig.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfig.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfig.java Sun Apr 25 21:55:11 2010
@@ -27,53 +27,109 @@ import java.util.Locale;
public interface MessageContextConfig extends Serializable
{
/**
- * create a new context based on the default context - default context won't get modified
+ * create a new context based on the default context - the default context won't get modified
*
- * @return
+ * @return a message context builder based on the current config
*/
MessageContextBuilder use();
/**
* change the default context
*
- * @return
+ * @return a message context builder to change the current config
*/
MessageContextBuilder change();
+ /**
+ * @return the current message interpolator
+ */
MessageInterpolator getMessageInterpolator();
+ /**
+ * @return the current message resolver
+ */
MessageResolver getMessageResolver();
+ /**
+ * @return the current locale resolver
+ */
LocaleResolver getLocaleResolver();
- //TODO
+ /**
+ * @return the current message handler
+ */
MessageHandler getMessageHandler();
+ /**
+ * @return the current formatter factory
+ */
FormatterFactory getFormatterFactory();
interface MessageContextBuilder
{
+ /**
+ * @param messageInterpolator a new message interpolator
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder messageInterpolator(MessageInterpolator messageInterpolator);
+ /**
+ * @param messageResolver a new message resolver
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder messageResolver(MessageResolver messageResolver);
+ /**
+ * @param formatter an additional argument formatter
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder addFormatter(Formatter formatter);
- MessageContextBuilder addFormatterConfig(Class<?> type, GenericConfig config);
-
- MessageContextBuilder addFormatterConfig(Class<?> type, GenericConfig config, Locale locale);
-
+ /**
+ * @param type the type the config belongs to
+ * @param formatterConfig config for the formatter of the given type
+ * @return the instance of the current message context builder
+ */
+ MessageContextBuilder addFormatterConfig(Class<?> type, GenericConfig formatterConfig);
+
+ /**
+ * @param type the type the config belongs to
+ * @param formatterConfig config for the formatter of the given type
+ * @param locale the locale the config belongs to
+ * @return the instance of the current message context builder
+ */
+ MessageContextBuilder addFormatterConfig(Class<?> type, GenericConfig formatterConfig, Locale locale);
+
+ /**
+ * @param formatterFactory a new argument formatter factory
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder formatterFactory(FormatterFactory formatterFactory);
+ /**
+ * @param messageHandler an additional message handler
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder addMessageHandler(MessageHandler messageHandler);
+ /**
+ * @param localeResolver a new locale resolver
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder localeResolver(LocaleResolver localeResolver);
+ /**
+ * resets the current builder to the initial state
+ * @return the instance of the current message context builder
+ */
MessageContextBuilder reset();
- @Deprecated
+ @Deprecated //currently not implemented
MessageContextBuilder clear();
+ /**
+ * @return a new message context based on the current config
+ */
MessageContext create();
}
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfigAware.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfigAware.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfigAware.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageContextConfigAware.java Sun Apr 25 21:55:11 2010
@@ -19,14 +19,20 @@
package org.apache.myfaces.extensions.cdi.message.api;
/**
- * TODO
* allows to store e.g. messages with the original config (if it is serializable)
*
* @author Gerhard Petracek
*/
-public interface MessageContextConfigAware
+public interface MessageContextConfigAware<T>
{
- Message setMessageContextConfig(MessageContextConfig messageContextConfig);
+ /**
+ * @param messageContextConfig config of the current message context
+ * @return the current instance
+ */
+ T setMessageContextConfig(MessageContextConfig messageContextConfig);
+ /**
+ * @return the stored config - null otherwise
+ */
MessageContextConfig getMessageContextConfig();
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageHandler.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageHandler.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageHandler.java Sun Apr 25 21:55:11 2010
@@ -28,21 +28,40 @@ import java.util.Set;
*/
public interface MessageHandler
{
+ /**
+ * called to add a message to a special target (known by the implementations)
+ *
+ * @param messageContext current message context
+ * @param message the new message to add
+ */
void addMessage(MessageContext messageContext, Message message);
+ /**
+ * @param messageFilters message filters which should be added to the current message handler
+ */
void addMessageFilter(MessageFilter... messageFilters);
+ /**
+ * @return the registered message filter(s)
+ */
Set<MessageFilter> getMessageFilters();
//TODO move to a separated interface?
-
+ /**
+ * removes an added message (if possible)
+ * @param message to be removed
+ */
void removeMessage(Message message);
//TODO move to a separated interface?
-
+ /**
+ * removes all added messages (if possible)
+ */
void removeAllMessages();
//TODO move to a separated interface?
-
+ /**
+ * @return all added messages (if they are available)
+ */
List<Message> getMessages();
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageInterpolator.java Sun Apr 25 21:55:11 2010
@@ -26,5 +26,12 @@ import java.io.Serializable;
*/
public interface MessageInterpolator
{
+ /**
+ * replaces the arguments of the given message with the given arguments
+ *
+ * @param messageTemplate the message template or text which has to be interpolated
+ * @param arguments a list of numbered and/or named arguments for the current message
+ * @return the final message text if an interpolation was possible - the unmodified messageTemplate otherwise
+ */
String interpolate(String messageTemplate, Serializable... arguments);
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageResolver.java Sun Apr 25 21:55:11 2010
@@ -31,8 +31,9 @@ public interface MessageResolver
static final String MISSING_RESOURCE_MARKER = "???";
/**
- * @param key unique key
- * @param locale
+ * @param key the message template (or in-lined text) of the current message
+ * @param locale the current locale
+ * @param payload the payload of the message e.g. to use different message sources
* @return the final but not interpolated message text
*/
String getMessage(String key, Locale locale, Map<Class, Class<? extends MessagePayload>> payload);
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageWithSeverity.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageWithSeverity.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageWithSeverity.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/MessageWithSeverity.java Sun Apr 25 21:55:11 2010
@@ -21,9 +21,14 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
/**
+ * convenience interface
+ *
* @author Gerhard Petracek
*/
public interface MessageWithSeverity extends Message
{
+ /**
+ * @return the severity of the message based on the message payload
+ */
Class<? extends MessagePayload> getSeverity();
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/NamedArgument.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/NamedArgument.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/NamedArgument.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/NamedArgument.java Sun Apr 25 21:55:11 2010
@@ -21,11 +21,20 @@ package org.apache.myfaces.extensions.cd
import java.io.Serializable;
/**
+ * to allow a simpler interface for adding attributes.
+ * furthermore, it allows message with mixed (numbered and named) arguments
+ *
* @author Gerhard Petracek
*/
public interface NamedArgument extends Serializable
{
+ /**
+ * @return name/key of the argument which can be used in the message-text as placeholder
+ */
String getName();
+ /**
+ * @return value of the argument
+ */
Serializable getValue();
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/payload/MessagePayloadKey.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/payload/MessagePayloadKey.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/payload/MessagePayloadKey.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/api/src/main/java/org/apache/myfaces/extensions/cdi/message/api/payload/MessagePayloadKey.java Sun Apr 25 21:55:11 2010
@@ -24,6 +24,8 @@ import static java.lang.annotation.Reten
import java.lang.annotation.Target;
/**
+ * optional marker to group payload implementations
+ *
* @author Gerhard Petracek
*/
@Target({TYPE})
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultFormatterFactory.java Sun Apr 25 21:55:11 2010
@@ -90,18 +90,20 @@ public class DefaultFormatterFactory imp
}
}
- public void addFormatterConfig(Class<?> type, GenericConfig formatterConfig)
+ public FormatterFactory addFormatterConfig(Class<?> type, GenericConfig formatterConfig)
{
addFormatterConfig(type, formatterConfig, Locale.getDefault());
+ return this;
}
- public void addFormatterConfig(Class<?> type, GenericConfig formatterConfig, Locale locale)
+ public FormatterFactory addFormatterConfig(Class<?> type, GenericConfig formatterConfig, Locale locale)
{
if (formatterConfig.containsProperty(Locale.class.getName()))
{
locale = formatterConfig.getProperty(Locale.class.getName(), Locale.class);
}
this.formatterConfigs.put(createKey(type, locale), formatterConfig);
+ return this;
}
public GenericConfig findFormatterConfig(Class<?> type, Locale locale)
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageBuilder.java Sun Apr 25 21:55:11 2010
@@ -27,6 +27,7 @@ import org.apache.myfaces.extensions.cdi
import org.apache.myfaces.extensions.cdi.message.api.NamedArgument;
import org.apache.myfaces.extensions.cdi.message.api.Localizable;
import org.apache.myfaces.extensions.cdi.message.api.Formatter;
+import org.apache.myfaces.extensions.cdi.message.api.Default;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayload;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessagePayloadKey;
import org.apache.myfaces.extensions.cdi.message.api.payload.MessageSeverity;
@@ -272,7 +273,7 @@ class DefaultMessageBuilder implements M
argument = arguments[i];
formatter = this.messageContext.config().getFormatterFactory().findFormatter(argument.getClass());
- if (formatter != null && !formatter.isDefault())
+ if (formatter != null && !isDefaultFormatter(formatter.getClass()))
{
//noinspection unchecked
result.append(formatter.format(this.messageContext, argument));
@@ -300,6 +301,11 @@ class DefaultMessageBuilder implements M
return result.toString();
}
+ private boolean isDefaultFormatter(Class<? extends Formatter> formatterClass)
+ {
+ return formatterClass.isAnnotationPresent(Default.class);
+ }
+
private String extractTemplate(String template)
{
String result = getEscapedTemplate(template);
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageContextConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageContextConfig.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageContextConfig.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/DefaultMessageContextConfig.java Sun Apr 25 21:55:11 2010
@@ -224,7 +224,7 @@ class DefaultMessageContextConfig implem
this.messageInterpolator = new DefaultMessageInterpolator();
this.messageResolver = null;
this.messageHandlers = new HashSet<MessageHandler>();
- this.localeResolver = new org.apache.myfaces.extensions.cdi.message.impl.DefaultLocaleResolver();
+ this.localeResolver = new DefaultLocaleResolver();
this.formatterFactory = new DefaultFormatterFactory();
}
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/ELAwareMessageInterpolator.java Sun Apr 25 21:55:11 2010
@@ -94,7 +94,7 @@ public class ELAwareMessageInterpolator
ValueExpression valueExpression =
factory.createValueExpression(elContext, "${" + expression + "}", Object.class);
-
+
Object value = valueExpression.getValue(elContext);
if (value != null && !isUnresolvedArgument(expression, value))
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NamedArguments.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NamedArguments.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NamedArguments.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/NamedArguments.java Sun Apr 25 21:55:11 2010
@@ -28,6 +28,10 @@ import java.util.Map;
/**
* @author Gerhard Petracek
*/
+
+/**
+ * @author Gerhard Petracek
+ */
public class NamedArguments
{
private NamedArgumentBuilder namedArgumentBuilder = new NamedArgumentBuilder();
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/DefaultNumberFormatter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/DefaultNumberFormatter.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/DefaultNumberFormatter.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/DefaultNumberFormatter.java Sun Apr 25 21:55:11 2010
@@ -74,11 +74,6 @@ class DefaultNumberFormatter implements
}
}
- public boolean isDefault()
- {
- return false;
- }
-
private void resetConfig()
{
this.groupingSeparator = null;
Modified: myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/ToStringFormatter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/ToStringFormatter.java?rev=937896&r1=937895&r2=937896&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/ToStringFormatter.java (original)
+++ myfaces/extensions/cdi/trunk/jse-modules/message-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/message/impl/formatter/ToStringFormatter.java Sun Apr 25 21:55:11 2010
@@ -18,6 +18,7 @@
*/
package org.apache.myfaces.extensions.cdi.message.impl.formatter;
+import org.apache.myfaces.extensions.cdi.message.api.Default;
import org.apache.myfaces.extensions.cdi.message.api.Formatter;
import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
@@ -26,6 +27,7 @@ import java.io.Serializable;
/**
* @author Gerhard Petracek
*/
+@Default
class ToStringFormatter implements Formatter<Object>, Serializable
{
private static final long serialVersionUID = 3529715901768617301L;
@@ -46,9 +48,4 @@ class ToStringFormatter implements Forma
{
return valueToFormat != null ? valueToFormat.toString() : "";
}
-
- public boolean isDefault()
- {
- return true;
- }
}