/*
* Copyright (C) 2013 David Sowerby
*
* 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 uk.q3c.krail.core.user;
import com.google.inject.AbstractModule;
import uk.q3c.krail.core.user.notify.DefaultUserNotifier;
import uk.q3c.krail.core.user.notify.DefaultVaadinNotification;
import uk.q3c.krail.core.user.notify.UserNotifier;
import uk.q3c.krail.core.user.notify.VaadinNotification;
import uk.q3c.krail.core.user.profile.DefaultUserHierarchy;
import uk.q3c.krail.core.user.profile.SimpleUserHierarchy;
import uk.q3c.krail.core.user.profile.UserHierarchy;
public class UserModule extends AbstractModule {
@SuppressWarnings("rawtypes")
@Override
protected void configure() {
bindUserNotifier();
bindVaadinNotification();
bindUserHierarchies();
}
protected void bindVaadinNotification() {
bind(VaadinNotification.class).to(DefaultVaadinNotification.class);
}
/**
* Bind you own {@link UserHierarchy} implementations, using binding annotations to identify them. At least one
* must marked as default by using the {@link DefaultUserHierarchy} annotation.
*/
protected void bindUserHierarchies() {
bind(UserHierarchy.class).annotatedWith(DefaultUserHierarchy.class)
.to(SimpleUserHierarchy.class);
}
/**
* Override this method to bind your own UserNotifier implementation
*/
protected void bindUserNotifier() {
bind(UserNotifier.class).to(DefaultUserNotifier.class);
}
}