package in.partake.model.dao;
import in.partake.model.IPartakeDAOs;
import in.partake.model.dao.access.IAccess;
import in.partake.model.dao.access.IConfigurationItemAccess;
import in.partake.model.dao.access.IUserCalendarLinkageAccess;
import in.partake.model.dao.access.IEventCommentAccess;
import in.partake.model.dao.access.IUserTicketAccess;
import in.partake.model.dao.access.IEventAccess;
import in.partake.model.dao.access.IEventActivityAccess;
import in.partake.model.dao.access.IEventFeedAccess;
import in.partake.model.dao.access.IEventMessageAccess;
import in.partake.model.dao.access.IEventTicketAccess;
import in.partake.model.dao.access.IEventTicketNotificationAccess;
import in.partake.model.dao.access.IUserImageAccess;
import in.partake.model.dao.access.IMessageAccess;
import in.partake.model.dao.access.IMessageEnvelopeAccess;
import in.partake.model.dao.access.IUserOpenIDLinkAccess;
import in.partake.model.dao.access.IUserThumbnailAccess;
import in.partake.model.dao.access.IUserTwitterLinkAccess;
import in.partake.model.dao.access.ITwitterMessageAccess;
import in.partake.model.dao.access.IUserAccess;
import in.partake.model.dao.access.IUserNotificationAccess;
import in.partake.model.dao.access.IUserPreferenceAccess;
import in.partake.model.dao.access.IUserReceivedMessageAccess;
import in.partake.model.dao.access.IUserSentMessageAccess;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public abstract class PartakeDAOFactory implements IPartakeDAOs {
private final IConfigurationItemAccess configurationItemAccess;
private final IUserCalendarLinkageAccess calendarLinkageAccess;
private final IEventCommentAccess commentAccess;
private final IUserTicketAccess enrollmentAccess;
private final IEventAccess eventAccess;
private final IEventFeedAccess eventFeedAccess;
private final IEventActivityAccess eventActivityAccess;
private final IEventTicketAccess eventTicketAccess;
private final IUserImageAccess imageAccess;
private final IUserOpenIDLinkAccess openIDLinkageAccess;
private final IUserThumbnailAccess thumbnailAccess;
private final IUserTwitterLinkAccess twitterLinkageAccess;
private final IUserAccess userAccess;
private final IUserPreferenceAccess userPreferenceAccess;
private final IEventMessageAccess eventMessageAccess;
private final IUserReceivedMessageAccess userMessageAccess;
private final IEventTicketNotificationAccess eventNotificationMessageAccess;
private final IMessageAccess messageAccess;
private final IMessageEnvelopeAccess messageEnvelopeAccess;
private final ITwitterMessageAccess twitterMessageAccess;
private final IUserNotificationAccess userNotificationAccess;
private final IUserSentMessageAccess userSentMessageAccess;
private final List<IAccess<?, ?>> daos;
protected PartakeDAOFactory() {
daos = new ArrayList<IAccess<?, ?>>();
addDao(configurationItemAccess = createConfiguraitonItemAccess());
addDao(calendarLinkageAccess = createCalendarLinkageAccess());
addDao(commentAccess = createCommentAccess());
addDao(enrollmentAccess = createEnrollmentAccess());
addDao(eventAccess = createEventAccess());
addDao(eventFeedAccess = createEventFeedAccess());
addDao(eventActivityAccess = createEventActivityAccess());
addDao(eventTicketAccess = createEventTicketAccess());
addDao(imageAccess = createImageAccess());
addDao(openIDLinkageAccess = createOpenIDLinkageAccess());
addDao(thumbnailAccess = createThumbnailAccess());
addDao(twitterLinkageAccess = createTwitterLinkageAccess());
addDao(userAccess = creataeUserAccess());
addDao(userPreferenceAccess = createUserPreferenceAccess());
addDao(eventMessageAccess = createEventMessageAccess());
addDao(userMessageAccess = createUserReceivedMessageAccess());
addDao(eventNotificationMessageAccess = createEventNotificationAccess());
addDao(messageAccess = createMessageAccess());
addDao(twitterMessageAccess = createTwitterMessageAccess());
addDao(messageEnvelopeAccess = createMessageEnvelopeAccess());
addDao(userNotificationAccess = createUserNotificationAccess());
addDao(userSentMessageAccess = createUserSentMessageAccess());
}
public void initialize(PartakeConnection con) throws DAOException {
for (IAccess<?, ?> dao : daos) {
dao.initialize(con);
}
}
// ----------------------------------------------------------------------
//
private void addDao(IAccess<?, ?> t) {
if (t != null)
daos.add(t);
}
public List<IAccess<?, ?>> getDaos() {
return Collections.unmodifiableList(daos);
}
// ----------------------------------------------------------------------
// accessors
public final IConfigurationItemAccess getConfiguraitonItemAccess() {
return configurationItemAccess;
}
public final IUserCalendarLinkageAccess getCalendarAccess() {
return calendarLinkageAccess;
}
public final IEventCommentAccess getCommentAccess() {
return commentAccess;
}
public final IUserTicketAccess getEnrollmentAccess() {
return enrollmentAccess;
}
public final IEventAccess getEventAccess() {
return eventAccess;
}
public final IEventFeedAccess getEventFeedAccess() {
return eventFeedAccess;
}
public final IEventActivityAccess getEventActivityAccess() {
return eventActivityAccess;
}
public final IUserImageAccess getImageAccess() {
return imageAccess;
}
public final IUserOpenIDLinkAccess getOpenIDLinkageAccess() {
return openIDLinkageAccess;
}
public final IUserThumbnailAccess getThumbnailAccess() {
return thumbnailAccess;
}
public final IUserTwitterLinkAccess getTwitterLinkageAccess() {
return twitterLinkageAccess;
}
public final IUserAccess getUserAccess() {
return userAccess;
}
public final IUserPreferenceAccess getUserPreferenceAccess() {
return userPreferenceAccess;
}
public final IEventMessageAccess getEventMessageAccess() {
return eventMessageAccess;
}
public final IEventTicketAccess getEventTicketAccess() {
return eventTicketAccess;
}
public final IUserCalendarLinkageAccess getCalendarLinkageAccess() {
return calendarLinkageAccess;
}
public final IUserReceivedMessageAccess getUserReceivedMessageAccess() {
return userMessageAccess;
}
public final IEventTicketNotificationAccess getEventNotificationAccess() {
return eventNotificationMessageAccess;
}
public final IMessageAccess getMessageAccess() {
return messageAccess;
}
@Override
public final IMessageEnvelopeAccess getMessageEnvelopeAccess() {
return this.messageEnvelopeAccess;
}
@Override
public final ITwitterMessageAccess getTwitterMessageAccess() {
return this.twitterMessageAccess;
}
@Override
public IUserNotificationAccess getUserNotificationAccess() {
return this.userNotificationAccess;
}
@Override
public IUserSentMessageAccess getUserSentMessageAccess() {
return this.userSentMessageAccess;
}
protected abstract IConfigurationItemAccess createConfiguraitonItemAccess();
protected abstract IUserCalendarLinkageAccess createCalendarLinkageAccess();
protected abstract IEventCommentAccess createCommentAccess();
protected abstract IUserTicketAccess createEnrollmentAccess();
protected abstract IEventAccess createEventAccess();
protected abstract IEventTicketAccess createEventTicketAccess();
protected abstract IEventFeedAccess createEventFeedAccess();
protected abstract IEventActivityAccess createEventActivityAccess();
protected abstract IUserOpenIDLinkAccess createOpenIDLinkageAccess();
protected abstract IUserImageAccess createImageAccess();
protected abstract IUserThumbnailAccess createThumbnailAccess();
protected abstract IUserTwitterLinkAccess createTwitterLinkageAccess();
protected abstract IUserAccess creataeUserAccess();
protected abstract IUserPreferenceAccess createUserPreferenceAccess();
protected abstract IEventMessageAccess createEventMessageAccess();
protected abstract IUserReceivedMessageAccess createUserReceivedMessageAccess();
protected abstract IEventTicketNotificationAccess createEventNotificationAccess();
protected abstract IMessageAccess createMessageAccess();
protected abstract ITwitterMessageAccess createTwitterMessageAccess();
protected abstract IMessageEnvelopeAccess createMessageEnvelopeAccess();
protected abstract IUserNotificationAccess createUserNotificationAccess();
protected abstract IUserSentMessageAccess createUserSentMessageAccess();
}