/** * myJerry | Evenstar * Copyright (C) 2010 myJerry Development Team * http://www.myjerry.org * * The file is licensed under the 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.myjerry.evenstar.service.impl; import java.util.List; import javax.jdo.JDOObjectNotFoundException; import javax.jdo.PersistenceManager; import javax.jdo.Query; import org.myjerry.evenstar.model.EvenstarUser; import org.myjerry.evenstar.persistence.PersistenceManagerFactoryImpl; import org.myjerry.evenstar.service.UserService; import org.myjerry.util.StringUtils; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.KeyFactory; public class UserServiceImpl implements UserService { @Override public boolean addAdmin(String email) { // TODO Auto-generated method stub return false; } @Override public boolean addAdmin(Long userID) { // TODO Auto-generated method stub return false; } @SuppressWarnings("unchecked") @Override public EvenstarUser getEvenstarUser(String email) { if(StringUtils.isEmpty(email)) { return null; } PersistenceManager manager = PersistenceManagerFactoryImpl.getPersistenceManager(); try { Query query = manager.newQuery(EvenstarUser.class, "email == emailParam"); query.declareParameters("String emailParam"); List<EvenstarUser> users = (List<EvenstarUser>) query.execute(email); if(users != null && users.size() == 1) { return manager.detachCopy(users.get(0)); } } catch(Exception e) { e.printStackTrace(); } finally { manager.close(); } return null; } @Override public EvenstarUser getEvenstarUser(Long userID) { if(userID == null) { return null; } PersistenceManager manager = PersistenceManagerFactoryImpl.getPersistenceManager(); try { Key key = KeyFactory.createKey(EvenstarUser.class.getSimpleName(), userID); EvenstarUser user = manager.getObjectById(EvenstarUser.class, key); return manager.detachCopy(user); } catch(JDOObjectNotFoundException e) { // do nothing } catch(Exception e) { e.printStackTrace(); } finally { manager.close(); } return null; } @Override public Long getEvenstarUserID(String email) { // TODO Auto-generated method stub return null; } @Override public boolean isUserAdmin(String email) { // TODO Auto-generated method stub return false; } @Override public boolean isUserAdmin(Long userID) { // TODO Auto-generated method stub return false; } @SuppressWarnings("unchecked") @Override public EvenstarUser getEvenstarUserForUri(String uri) { if(StringUtils.isEmpty(uri)) { return null; } PersistenceManager manager = PersistenceManagerFactoryImpl.getPersistenceManager(); try { Query query = manager.newQuery(EvenstarUser.class, "homePage == uriParam"); query.declareParameters("String uriParam"); List<EvenstarUser> users = (List<EvenstarUser>) query.execute(uri); if(users != null && users.size() == 1) { return manager.detachCopy(users.get(0)); } } catch(Exception e) { e.printStackTrace(); } finally { manager.close(); } return null; } @SuppressWarnings("unchecked") @Override public Long getEvenstarUserIDForUri(String email) { if(StringUtils.isEmpty(email)) { return null; } PersistenceManager manager = PersistenceManagerFactoryImpl.getPersistenceManager(); try { Query query = manager.newQuery(EvenstarUser.class, "email == emailParam"); query.declareParameters("String emailParam"); List<EvenstarUser> users = (List<EvenstarUser>) query.execute(email); if(users != null && users.size() == 1) { return users.get(0).getUserID(); } } catch(Exception e) { e.printStackTrace(); } finally { manager.close(); } return null; } @Override public boolean addEvenstarUser(EvenstarUser evenstarUser) { if(evenstarUser == null) { return false; } if(StringUtils.isEmpty(evenstarUser.getEmail()) && StringUtils.isEmpty(evenstarUser.getHomePage())) { return false; } PersistenceManager manager = PersistenceManagerFactoryImpl.getPersistenceManager(); EvenstarUser exist = getEvenstarUser(evenstarUser.getEmail()); if(exist != null) { return false; } exist = getEvenstarUserForUri(evenstarUser.getHomePage()); if(exist != null) { return false; } try { manager.makePersistent(evenstarUser); return true; } catch(Exception e) { e.printStackTrace(); } finally { manager.close(); } return false; } @Override public boolean isEvenstarUser(String email) { if(StringUtils.isEmpty(email)) { return false; } EvenstarUser user = getEvenstarUser(email); if(user != null) { return true; } return false; } }