Создание таблицы из модели связанных объектов - PullRequest
2 голосов
/ 05 августа 2009

У меня есть следующая модель, которая делает элемент родителем элемента, который следует за ним. Например, я получаю данные с сервера в виде массива, например:

net      Person       age
net      Person       height

net      Address      streetname

org      Company      name

org      Company      location

com      School       color

com      School       number

пожалуйста, прочитайте ссылку ниже для вчерашнего сообщения и посмотрите классы моделей и структуру. Вопрос, который я задал в этой ссылке, не тот, который я хочу сейчас. Я просто хочу, чтобы вы увидели модель данных и структуру.

Сравнение связанных объектов

МОЙ ВОПРОС СЕЙЧАС ЕСТЬ ::

Я хочу создать таблицу из модели, но мне трудно реализовать поставщиков контента и меток. Поэтому я спрашиваю, как я могу это сделать. Каждый столбец будет содержать дочерние элементы предыдущего столбца и т. Д.

Спасибо за вашу помощь.

Я пробовал это в поставщике контента, но он не работает:

public Object[] getElements(Object parentElement) {

              if(parentElement instanceof cPackage) {
         cPackage pack = (cPackage)parentElement;
         return pack.getChildren().toArray();
     }else if(parentElement instanceof cClass) {
         cClass klas = (cClass)parentElement;
         return klas.getChildren().toArray();
     }else if(parentElement instanceof cMethod) {
         cMethod met = (cMethod)parentElement;
         return met.getChildren().toArray();
     }
        return EMPTY_ARRAY;
}

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 12 августа 2009

Если под "не работает" вы подразумеваете, что он всегда возвращает EMPTY_ARRAY, то я подозреваю, что parentElement - это не то, что вы думаете. Попробуйте добавить

System.out.println(parentElement.getClass().getSimpleName());

в верхней части метода и посмотреть, что вы получите.

Кстати, поскольку cPackage, cClass и cMethod все реализуют getChildren(), вам не нужны все эти операторы if - просто

if (parentElement instanceof Model) {
  return ((Model)parentElement).getChildren().toArray();
}

должен это сделать. На самом деле, если вы ожидаете, что будут передаваться только подклассы Model, вы также можете опустить оператор if, хотя вам может потребоваться проверить наличие null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...