QueryResultBase.java :  » Testing » PolePosition-0.20 » com » versant » core » jdo » Java Open Source

Java Open Source » Testing » PolePosition 0.20 
PolePosition 0.20 » com » versant » core » jdo » QueryResultBase.java

/*
 * Copyright (c) 1998 - 2005 Versant Corporation
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * Versant Corporation - initial API and implementation
 */
package com.versant.core.jdo;

import com.versant.core.common.OID;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import com.versant.core.common.BindingSupportImpl;

import javax.jdo.PersistenceManager;

/**
 * Base class for QueryResult implementations that throws an exception for
 * all mutating methods. It also manages the next and prev pointers. All
 * methods from the interface have abstract methods here to avoid problems
 * with the IBM VMs.
 * 
 * @see QueryResult
 * @see ForwardQueryResult
 * @see RandomAccessQueryResult
 * @see MemoryQueryResult
 */
public abstract class QueryResultBase implements QueryResult {

    private QueryResult next;
    private QueryResult prev;

    public final QueryResult getNext() {
        return next;
    }

    public final void setNext(QueryResult next) {
        this.next = next;
    }

    public final QueryResult getPrev() {
        return prev;
    }

    public final void setPrev(QueryResult prev) {
        this.prev = prev;
    }

    public abstract void close();

    public abstract void setParams(Object[] params);

    public abstract Iterator createInternalIterNoFlush();

    public boolean add(Object o) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public boolean remove(Object o) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public boolean addAll(Collection c) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public boolean addAll(int index, Collection c) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public boolean removeAll(Collection c) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public boolean retainAll(Collection c) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public void clear() {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public Object set(int index, Object element) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public void add(int index, Object element) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public Object remove(int index) {
        throw BindingSupportImpl.getInstance().unsupportedOperation("Modification not allowed");
    }

    public abstract int size();

    public abstract boolean isEmpty();

    public abstract boolean contains(Object o);

    public abstract Iterator iterator();

    public abstract Object[] toArray();

    public abstract Object[] toArray(Object a[]);

    public abstract boolean containsAll(Collection c);

    public abstract Object get(int index);

    public abstract int indexOf(Object o);

    public abstract int lastIndexOf(Object o);

    public abstract ListIterator listIterator();

    public abstract ListIterator listIterator(int index);

    public abstract List subList(int fromIndex, int toIndex);

    public static Object resolveRow(Object row, PersistenceManager pm) {
        if (row == null) return null;
        if (row instanceof OID) {
            return pm.getObjectById(row, false);
        } else if (row instanceof Object[]) {
            Object[] data = (Object[])row;
            for (int i = 0; i < data.length; i++) {
                Object o = data[i];
                if (o instanceof OID) {
                    data[i] = pm.getObjectById(o, false);
                }
            }
        }
        return row;
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.