/* Copyright (c) 2009 Google Inc. * * 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 com.google.appengine.demos.jdoexamples; import java.util.List; import javax.jdo.PersistenceManager; import javax.jdo.Query; public class AddressBookUtils { private static final int ENTITIES_PER_PAGE = 3; public static String insertNew( String firstName, String lastName, String city, String state, String phoneNumber) { AddressBookEntry entry = new AddressBookEntry(); entry.setPersonalInfo(new AddressBookEntry.PersonalInfo(firstName, lastName)); entry.setAddressInfo(new AddressBookEntry.AddressInfo(city, state)); entry.setContactInfo(new AddressBookEntry.ContactInfo(phoneNumber)); PersistenceManager pm = PMF.get().getPersistenceManager(); pm.makePersistent(entry); System.out.println( "The ID of the new entry is: " + entry.getId().toString()); return entry.getId().toString(); } public static List<AddressBookEntry> getPage( Long keyOffset, int indexOffset, String lastName, String state) { PersistenceManager pm = PMF.get().getPersistenceManager(); Query query = pm.newQuery(AddressBookEntry.class); query.declareParameters( "Long keyOffset, String lastNameSelected, String stateSelected"); StringBuilder filter = new StringBuilder(); String combine = ""; if (keyOffset != null && !keyOffset.equals("")) { if (filter.length() != 0) { filter.append(" && "); } filter.append("id >= keyOffset"); } if (lastName != null && !lastName.equals("")) { if (filter.length() != 0) { filter.append(" && "); } filter.append("personalInfo.lastName == lastNameSelected"); } if (state != null && !state.equals("")) { if (filter.length() != 0) { filter.append(" && "); } filter.append("addressInfo.state == stateSelected"); } System.out.println("Filter is: " + filter.toString()); if (filter.length() > 0) { query.setFilter(filter.toString()); } query.setRange(indexOffset, indexOffset + ENTITIES_PER_PAGE + 1); return (List<AddressBookEntry>) query.execute(keyOffset, lastName, state); } }