📄 personalizationdataimpl.java
字号:
package com.esri.solutions.jitk.personalization.data;
import com.esri.solutions.jitk.personalization.PersonalizationException;
import com.esri.solutions.jitk.personalization.dao.BookmarkInfoRecord;
import com.esri.solutions.jitk.personalization.dao.Criteria;
import com.esri.solutions.jitk.personalization.dao.IBookmarkDAO;
import com.esri.solutions.jitk.personalization.dao.IMapCompositionDAO;
import com.esri.solutions.jitk.personalization.dao.IPersonalizationDAOProfile;
import com.esri.solutions.jitk.personalization.dao.IQueryDAO;
import com.esri.solutions.jitk.personalization.dao.MapCompositionInfoRecord;
import com.esri.solutions.jitk.personalization.dao.MapCompositionRecord;
import com.esri.solutions.jitk.personalization.dao.PageInfo;
import com.esri.solutions.jitk.personalization.dao.PersonalizationDAOException;
import com.esri.solutions.jitk.personalization.dao.QueryInfoRecord;
import com.esri.solutions.jitk.personalization.data.beans.v1.CatalogQueryType;
import com.esri.solutions.jitk.personalization.data.beans.v1.FeatureQueryType;
import com.esri.solutions.jitk.personalization.data.beans.v1.QueryType;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* Implementation of {@link IPersonalizationData}. This implementation
* will need a {@link IPersonalizationDAOProfile} object in order
* to get DAOs to persist objects.
*/
public class PersonalizationDataImpl implements IDataFactory,
IPersonalizationData {
/**
* Logger to use to log messages from this class.
*/
private static final Logger LOG = LogManager.getLogger(PersonalizationDataImpl.class);
private static final String ERROR_NULL_PROFILE_OBJECT = "Object was not injected with IPersonalizationDAOProfile object.";
private static final String ERROR_NULL_MAP_COMP_DAO_OBJECT = "IPersonalizationDAOProfile returned a null IMapCompositionDAO object.";
private static final String ERROR_NULL_BOOKMARK_DAO_OBJECT = "IPersonalizationDAOProfile returned a null IBookmarkDAO object.";
private static final String ERROR_NULL_CURRENT_USER_OBJECT = "Object was not injected with IUser object.";
private static final String ERROR_INVALID_PAGE_NUMBER = "Page Number must be greater than or equal to 0.";
private static final String ERROR_INVALID_PAGE_SIZE = "Page Size must be greater than or equal to 1.";
private static final String ERROR_NULL_QUERY_DAO_OBJECT = "IPersonalizationDAOProfile returned a null IQueryDAO object.";
private static final String WARN_UNABLE_TO_RETRIEVE_QUERY_MAP_COMP = "Unable to retrieve Map Composition Record [{0} for Query [{1}]";
/**
* Reference to the profile of DAO objects for persistence.
*/
private IPersonalizationDAOProfile m_daoProfile;
/**
* user associated with the personalization data.
*/
private IUser m_currentUser;
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#createBookmark()
*/
public IBookmark createBookmark() throws PersonalizationException {
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
BookmarkImpl bookmark = new BookmarkImpl();
bookmark.setNew(true);
bookmark.setPersonalizationDAOProfile(m_daoProfile);
bookmark.setCurrentUser(m_currentUser);
return bookmark;
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#createMapComposition()
*/
public IMapComposition createMapComposition()
throws PersonalizationException {
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
MapCompositionImpl mapComp = new MapCompositionImpl();
mapComp.setNew(true);
mapComp.setPersonalizationDAOProfile(m_daoProfile);
mapComp.setDataFactory(this);
mapComp.setCurrentUser(m_currentUser);
return mapComp;
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#createQuery()
*/
public IQuery createQuery(IQuery.Type type) {
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
QueryImpl query = new QueryImpl();
query.setNew(true);
query.setPersonalizationDAOProfile(m_daoProfile);
query.setCurrentUser(m_currentUser);
query.setType(type);
return query;
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#createQuery(com.esri.solutions.jitk.personalization.data.beans.v1.QueryType)
*/
public IQuery createQuery(QueryType queryType) {
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
QueryImpl query = new QueryImpl();
query.setNew(true);
query.setPersonalizationDAOProfile(m_daoProfile);
query.setCurrentUser(m_currentUser);
query.setQuery(queryType);
if (queryType instanceof CatalogQueryType) {
query.setType(IQuery.Type.CATALOG);
} else if (queryType instanceof FeatureQueryType) {
query.setType(IQuery.Type.FEATURE);
}
return query;
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#getBookmark(java.util.UUID)
*/
public IBookmark getBookmark(UUID id) throws PersonalizationException {
if (id == null) {
throw new NullPointerException();
}
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
IBookmarkDAO dao = null;
IBookmark bookmark = null;
BookmarkInfoRecord rec = null;
try {
dao = m_daoProfile.getBookmarkDAO();
if (dao == null) {
LOG.error(ERROR_NULL_BOOKMARK_DAO_OBJECT);
throw new IllegalArgumentException(ERROR_NULL_BOOKMARK_DAO_OBJECT);
}
rec = dao.selectOne(id.toString());
bookmark = createBookmark(rec);
return bookmark;
} catch (PersonalizationDAOException e) {
throw new PersonalizationException(PersonalizationException.Code.RETRIEVE_DATA_ERROR,
e);
}
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#getBookmarkCount()
*/
public long getBookmarkCount() throws PersonalizationException {
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
try {
IBookmarkDAO dao = m_daoProfile.getBookmarkDAO();
if (dao == null) {
LOG.error(ERROR_NULL_BOOKMARK_DAO_OBJECT);
throw new IllegalArgumentException(ERROR_NULL_BOOKMARK_DAO_OBJECT);
}
Criteria criteria = null;
criteria = new Criteria();
criteria.setUser(m_currentUser.getId().getUsername());
return dao.selectAllCount(criteria);
} catch (PersonalizationDAOException e) {
throw new PersonalizationException(PersonalizationException.Code.RETRIEVE_DATA_ERROR,
e);
}
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#getBookmarks()
*/
public List<IBookmark> getBookmarks() throws PersonalizationException {
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException();
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
List<IBookmark> bookmarks = new ArrayList<IBookmark>();
try {
IBookmarkDAO dao = m_daoProfile.getBookmarkDAO();
if (dao == null) {
LOG.error(ERROR_NULL_BOOKMARK_DAO_OBJECT);
throw new IllegalArgumentException(ERROR_NULL_BOOKMARK_DAO_OBJECT);
}
Criteria criteria = null;
criteria = new Criteria();
criteria.setUser(m_currentUser.getId().getUsername());
List<BookmarkInfoRecord> records = dao.selectAll(criteria);
if (records != null) {
for (BookmarkInfoRecord record : records) {
bookmarks.add(createBookmark(record));
}
}
return bookmarks;
} catch (PersonalizationDAOException e) {
throw new PersonalizationException(PersonalizationException.Code.RETRIEVE_DATA_ERROR,
e);
}
}
/*
* (non-Javadoc)
* @see com.esri.solutions.jitk.personalization.data.IPersonalizationData#getBookmarks(int, int)
*/
public List<IBookmark> getBookmarks(int page, int pageSize)
throws PersonalizationException {
if (page < 0) {
LOG.error(ERROR_INVALID_PAGE_NUMBER);
throw new IllegalArgumentException(ERROR_INVALID_PAGE_NUMBER);
}
if (pageSize < 1) {
LOG.error(ERROR_INVALID_PAGE_SIZE);
throw new IllegalArgumentException(ERROR_INVALID_PAGE_SIZE);
}
if (m_daoProfile == null) {
LOG.error(ERROR_NULL_PROFILE_OBJECT);
throw new IllegalStateException(ERROR_NULL_PROFILE_OBJECT);
}
if (m_currentUser == null) {
LOG.error(ERROR_NULL_CURRENT_USER_OBJECT);
throw new IllegalStateException(ERROR_NULL_CURRENT_USER_OBJECT);
}
List<IBookmark> bookmarks = new ArrayList<IBookmark>();
try {
IBookmarkDAO dao = m_daoProfile.getBookmarkDAO();
if (dao == null) {
LOG.error(ERROR_NULL_BOOKMARK_DAO_OBJECT);
throw new IllegalArgumentException(ERROR_NULL_BOOKMARK_DAO_OBJECT);
}
PageInfo pageInfo = new PageInfo();
pageInfo.setPageIndex(page);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -