В моем веб-приложении Spring MVC есть два определения классов с именами Class и Object соответственно:
public Class {
//instance variables
int classId;
int className;
}
public Object {
//instance variables
int objectId;
int objectName;
}
У меня также есть служба, которая возвращает список классов и объектов, определенных следующим образом.
package com.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
import com.domain.Class;
import com.domain.Object;
import com.service.SearchManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import java.io.Serializable;
public class SempediaSearchManager implements com.service.SearchManager {
private SessionFactory sessionFactory;
private List<Class> classes;
private List<Object> objects;
public List<Class> getClassSeedSearch(String classSeed) {
Configuration configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
try {
Query query = session.createQuery("from Class c where lower(c.className) like lower('"
+ classSeed + "%')");
return query.list();
} finally {
session.close();
}
}
public List<Object> getObjectSeedSearch(String objectSeed) {
Configuration configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
try {
Query query = session.createQuery("from Object o where lower(o.objectName) like lower('"
+ objectSeed + "%')");
return query.list();
} finally {
session.close();
}
}
?????
skeleton method
public List<ClassesAndObjects> getObjectorClassSeedSearch(String objectOrClassSeed) {
?????
}
Представление, которое я представляю, имеет окно поиска, которое позволяет пользователю искать либо классы, либо объекты на основе репсективного списка, возвращаемого методами getObjectSeedSearch и getClassSeedSearch - List, List соответственно
Что бы я хотел позволить текстовому полю поиска просто искать как классы, так и объекты, возвращая, возможно, объединенный список - List - если вы хотите, чтобы и классы, и объекты, используя метод getObjectorClassSeedSearch
Что было бы лучшим путем для реализации этого.
Я смутно знаю, что хочу создать класс-обертку, который будет принимать и класс, и объект и, возможно, полиморфно во время выполнения определять, что это за экземпляр и элемент, когда они возвращаются из списка. Я предполагаю, что у меня будет соответствующий бин для этого в моем приложении. возможно упражнение с дженериками.
Какой эффективный способ продолжить?
Спасибо