/** * Copyright (C) 2016 Red Hat, Inc. and/or its affiliates. * * 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. */ package org.jboss.errai.cdi.event.client; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.enterprise.context.Dependent; import javax.enterprise.event.Event; import javax.enterprise.event.Observes; import javax.inject.Inject; import javax.inject.Named; import org.jboss.errai.cdi.client.qualifier.Value; import org.jboss.errai.cdi.client.qualifier.WithClazz; import org.jboss.errai.cdi.client.qualifier.WithClazzArray; import org.jboss.errai.cdi.client.qualifier.WithEnum; import org.jboss.errai.cdi.client.qualifier.WithInt; import org.jboss.errai.cdi.client.qualifier.WithMultiple; import org.jboss.errai.cdi.event.client.shared.FiredQualifier; import org.jboss.errai.cdi.event.client.shared.PortableEvent; /** * * @author Max Barkley <mbarkley@redhat.com> */ @Dependent public class ClientQualifiedMemberEventObserver { @Inject private Event<FiredQualifier> event; public void observeWithClazzArray(@Observes @WithClazzArray({Object.class, Class.class}) PortableEvent value) { event.fire(new FiredQualifier(WithClazzArray.class.getName(), Collections.singletonMap("value", Arrays.toString(new Class<?>[] { Object.class, Class.class })))); } public void observeWithClazz(@Observes @WithClazz(Object.class) PortableEvent value) { event.fire(new FiredQualifier(WithClazz.class.getName(), Collections.singletonMap("value", Object.class.getName()))); } public void observeWithEnumOne(@Observes @WithEnum(Value.ONE) PortableEvent value) { event.fire(new FiredQualifier(WithEnum.class.getName(), Collections.singletonMap("value", Value.ONE))); } public void observeWithEnumTwo(@Observes @WithEnum(Value.TWO) PortableEvent value) { event.fire(new FiredQualifier(WithEnum.class.getName(), Collections.singletonMap("value", Value.TWO))); } public void observeWithInt0(@Observes @WithInt(0) PortableEvent value) { event.fire(new FiredQualifier(WithInt.class.getName(), Collections.singletonMap("value", 0))); } public void observeWithInt100(@Observes @WithInt(100) PortableEvent value) { event.fire(new FiredQualifier(WithInt.class.getName(), Collections.singletonMap("value", 100))); } public void observesNamed(@Observes @Named("foo") PortableEvent value) { event.fire(new FiredQualifier(Named.class.getName(), Collections.singletonMap("value", "foo"))); } public void observeWithMultiple1(@Observes @WithMultiple(enumValue = Value.ONE, intValue = 0, strValue = "") PortableEvent value) { final Map<String, Object> values = new HashMap<>(); values.put("enumValue", Value.ONE); values.put("intValue", 0); values.put("strValue", ""); event.fire(new FiredQualifier(WithMultiple.class.getName(), values)); } public void observeWithMultiple2(@Observes @WithMultiple(enumValue = Value.ONE, intValue = 1, strValue = "") PortableEvent value) { final Map<String, Object> values = new HashMap<>(); values.put("enumValue", Value.ONE); values.put("intValue", 1); values.put("strValue", ""); event.fire(new FiredQualifier(WithMultiple.class.getName(), values)); } public void observeWithMultiple3(@Observes @WithMultiple(enumValue = Value.ONE, intValue = 0, strValue = "foo") PortableEvent value) { final Map<String, Object> values = new HashMap<>(); values.put("enumValue", Value.ONE); values.put("intValue", 0); values.put("strValue", "foo"); event.fire(new FiredQualifier(WithMultiple.class.getName(), values)); } }