| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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 lcds.samples.contact;
|
|
|
| import java.util.List;
|
| import java.util.Map;
|
| import java.util.Collection;
|
|
|
| import flex.data.DataSyncException;
|
| import flex.data.assemblers.AbstractAssembler;
|
|
|
| public class ContactAssembler extends AbstractAssembler
|
| {
|
| private ContactDAO dao = new ContactDAO();
|
|
|
| public Collection fill(List fillParameters)
|
| {
|
| if (fillParameters.size() == 0)
|
| {
|
| return dao.findAll();
|
| }
|
|
|
| String queryName = (String) fillParameters.get(0);
|
|
|
| if (queryName.equals("by-name"))
|
| {
|
| return dao.findByName((String) fillParameters.get(1));
|
| }
|
|
|
| return super.fill(fillParameters); // throws a nice error
|
| }
|
|
|
| public Object getItem(Map uid)
|
| {
|
| return dao.getContact(((Integer) uid.get("contactId")).intValue());
|
| }
|
|
|
| public void createItem(Object newVersion)
|
| {
|
| dao.create((Contact) newVersion);
|
| }
|
|
|
| public void updateItem(Object newVersion, Object prevVersion, List changes)
|
| {
|
| int contactId = ((Contact) newVersion).getContactId();
|
| try
|
| {
|
| dao.update((Contact) newVersion);
|
| }
|
| catch (ConcurrencyException e)
|
| {
|
| System.err.println("*** Throwing DataSyncException when trying to update contact id=" + contactId);
|
| throw new DataSyncException(dao.getContact(contactId), changes);
|
| }
|
|
|
| }
|
|
|
| public void deleteItem(Object prevVersion)
|
| {
|
| try
|
| {
|
| dao.delete((Contact) prevVersion);
|
| }
|
| catch (ConcurrencyException e)
|
| {
|
| int contactId = ((Contact) prevVersion).getContactId();
|
| System.err.println("*** Throwing DataSyncException when trying to delete company id=" + contactId);
|
| throw new DataSyncException(dao.getContact(contactId), null);
|
| }
|
| }
|
|
|
| } |