/**
 *  Copyright 2000 by Visual XS,
 *  All rights reserved.
 *
 *  www.visualxs.com
 *  916 S Roosevelt Avenue, Bexley OH, 43209, U.S.A.
 *  (216) 274-9029
 */
package com.vxs.scrapbook.ejb.bean;

import com.vxs.database.StatementProxy;
import com.vxs.scrapbook.Category;
import com.vxs.scrapbook.ConcurrencyException;
import com.vxs.scrapbook.FindException;
import com.vxs.scrapbook.SecureException;
import com.vxs.scrapbook.UniqueKeyException;
import com.vxs.scrapbook.UpdateException;
import com.vxs.scrapbook.ValidationException;

import java.rmi.RemoteException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import javax.ejb.EJBException;

/**
 * All types of media are categorized into directory-like categories. This bean
 * represents those categories.
 *
 * @author     jcook
 * @created    July 22, 2001
 *
 * @ejb:bean
 * 		name            			= "CategoryEntityBean"
 * 		display-name    			= "Category Entity Bean"
 * 		jndi-name					= "scrapbook/category_eb"
 * 		local-jndi-name				= "scrapbook/local/category_eb"
 * 		view-type					= "both"
 * 		type						= "CMP"
 * 		transaction-type    		= "Container"
 * 		reentrant					= "false"
 * 		cmp-version					= "2.x"
 * 		schema						= "CATEGORY_ENTITY_BEAN"
 * 		primkey-field				= "categoryID"
 * @ejb:home
 * 		remote-class				= "com.vxs.scrapbook.ejb.CategoryEntityHome"
 * 		extends						= "javax.ejb.EJBHome"
 * 		local-class					= "com.vxs.scrapbook.ejb.CategoryEntityLocalHome"
 * 		local-extends				= "javax.ejb.EJBLocalHome"
 * @ejb:interface
 * 		remote-class				= "com.vxs.scrapbook.ejb.CategoryEntityRemote"
 * 		extends						= "javax.ejb.EJBObject"
 * 		local-class					= "com.vxs.scrapbook.ejb.CategoryEntityLocalRemote"
 * 		local-extends				= "javax.ejb.EJBLocalObject"
 * @ejb:data-object
 * 		package						= "com.vxs.scrapbook.ejb"
 * 		extends						= "java.lang.Object"
 * @ejb:transaction
 * 		type						= "Required"
 * @ejb:pk
 * 		generate					= "false"
 * @jboss:
 * 		table-name 					= "SCRPBK_CATEGORY"
 * 		create-table 				= "${jboss.create.table}"
 * 		remove-table 				= "${jboss.remove.table}"
 * 		tuned-updates 				= "${jboss.tuned.updates}"
 * 		read-only 					= "${jboss.read.only}"
 * 		time-out 					= "${jboss.timeout}"
 */
public abstract class CategoryEntityBean extends BaseEntityBean {
	// constructor -------------------------------------------------------------
	public CategoryEntityBean() {
	}

	// entity bean methods -----------------------------------------------------
	/**
	 * Basic create method.
	 * @ejb:create-method
	 */
	public void ejbCreate(String categoryID, String shortName, String longName,
						  int sortOrder, boolean active) {
		setCategoryID(categoryID);
		setShortName(shortName);
		setLongName(longName);
		setSortOrder(sortOrder);
		setActive(active);
	}


	public void ejbPostCreate(String categoryID, String shortName, String longName,
							  int sortOrder, boolean active) {

	}

//	public void ejbCreate(Category parent, String categoryID, String shortName,
//						  String longName, int sortOrder, boolean active) {
//
//	}
//
//	public void ejbPostCreate(Category parent, String categoryID, String shortName,
//							  String longName, int sortOrder, boolean active) {
//
//
//	}

	// properties --------------------------------------------------------------
	/**
	 * @ejb:persistent-field
	 * @jboss:column-name "CATEGORY_ID"
	 */
	public abstract String getCategoryID();
	public abstract void setCategoryID(String categoryID);

	/**
	 * @ejb:persistent-field
	 * @jboss:column-name "PARENT_ID"
	 */
	public abstract Category getParent();
	public abstract void setParent(Category category);

	public abstract int getID();
	public abstract void setID(int id);

	/**
	 * @ejb:persistent-field
	 * @jboss:column-name "SHORT_NAME"
	 */
	public abstract String getShortName();
	public abstract void setShortName(String shortName);

	/**
	 * @ejb:persistent-field
	 * @jboss:column-name "LONG_NAME"
	 */
	public abstract String getLongName();
	public abstract void setLongName(String longName);

	/**
	 * @ejb:persistent-field
	 * @jboss:column-name "SORT_ORDER"
	 */
	public abstract int getSortOrder();
	public abstract void setSortOrder(int sortOrder);

	/**
	 * @ejb:persistent-field
	 * @jboss:column-name "ACTIVE_FLAG"
	 */
	public abstract boolean isActive();
	public abstract void setActive(boolean active);
}
