libreccm-legacy/ccm-ldn-search/src/com/arsdigita/london/search/Server.java

140 lines
3.7 KiB
Java
Executable File

/*
* Copyright (C) 2001 ArsDigita Corporation. All Rights Reserved.
*
* The contents of this file are subject to the ArsDigita Public
* License (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.arsdigita.com/ADPL.txt
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
*/
package com.arsdigita.london.search;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
import java.math.BigDecimal;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.persistence.Session;
import com.arsdigita.persistence.DataCollection;
/**
* @author Daniel Berrange <berrange@redhat.com>
*/
public class Server extends ACSObject {
public static final String BASE_DATA_OBJECT_TYPE
= "com.arsdigita.london.search.Server";
// Attributes
public static final String TITLE = "title";
public static final String HOSTNAME = "hostname";
public Server() {
super(BASE_DATA_OBJECT_TYPE);
}
public Server(BigDecimal id)
throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
public Server(DataObject obj) {
super(obj);
}
public Server(OID oid)
throws DataObjectNotFoundException {
super(oid);
}
public static Server create(String hostname,
String title) {
Server server = new Server();
server.setHostname(hostname);
server.setTitle(title);
return server;
}
public static Server retrieve(BigDecimal id)
throws DataObjectNotFoundException {
Session session = SessionManager.getSession();
DataCollection server = session.retrieve(BASE_DATA_OBJECT_TYPE);
server.addEqualsFilter(ACSObject.ID, id);
if (server.next()) {
DataObject obj = server.getDataObject();
server.close();
return new Server(obj);
}
throw new DataObjectNotFoundException("cannot find server " + id);
}
public static Server retrieve(String hostname)
throws DataObjectNotFoundException {
Session session = SessionManager.getSession();
DataCollection server = session.retrieve(BASE_DATA_OBJECT_TYPE);
server.addEqualsFilter(HOSTNAME, hostname);
if (server.next()) {
DataObject obj = server.getDataObject();
server.close();
return new Server(obj);
}
throw new DataObjectNotFoundException("cannot find server" + hostname);
}
public static ServerCollection retrieveAll() {
Session session = SessionManager.getSession();
DataCollection servers = session.retrieve(BASE_DATA_OBJECT_TYPE);
servers.addOrder(TITLE);
return new ServerCollection(servers);
}
/*
* Accessor to the base object type.
* @return The fully qualified name of the supporting data object.
*/
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
/*
* @param title The title of the channel (SEARCH server).
*/
public void setTitle(String title) {
set(TITLE, title);
}
public String getTitle() {
return (String)get(TITLE);
}
/*
* @param hostname The hostname to the main site containing the channel.
*/
public void setHostname(String hostname) {
set(HOSTNAME, hostname);
}
public String getHostname() {
return (String)get(HOSTNAME);
}
}