Именование enum
От: peer  
Дата: 22.11.11 07:48
Оценка:
Привет.
почитал про сабж, но ответа не нашел на свою проблему.
У меня есть в базе 2 таблицы: Ошибки и ТипыПриложений. В таблице Ошибки есть внешний ключ "Тип приложения".
Соотвественно в проекте ORM у меня есть 2 сущности Error и ApplicationType.
Также я завел enum который представляет собой значений из таблицы ТипыПриложений и назвал его ApplicationType (также как и сущность)

Теперь, у меня есть контролер логирования с таким методом.

AddError(string errorMsg, enum appType)
{
   DomainService.AddNewError(new Error { ....});
}


Этот метод контролера выывается из морды (asp.net приложение) и я в него хочу передавать константой уже id приложения сопоставленного с его значением в базе в виде enum.
Сам id приложения будет храниться в конфиге.


Вопрос: как разрулить конфликт имени сущности и названия enum?
Re: Именование enum
От: Baudolino  
Дата: 22.11.11 09:16
Оценка:
P>Вопрос: как разрулить конфликт имени сущности и названия enum?
class ApplicationType {
}

enum ApplicationTypeValue {

  APPLICATION_FOO(1),
  APPLICATION_BAR(2);

  protected ApplicationTypeValue(long id) {
    ...
  }

  public ApplicationType toType() {
     return new ApplicationType(id);
  }

  public static ApplicationTypeValue valueOf(ApplicationType type) {
      switch (type.getId()) {
          case 1: return APPLICATION_FOO;
          case 2: return APPLICATION_BAR;
          default: throw new IllegalArgumentException("type");
      }
  }

}
Re[2]: Именование enum
От: peer  
Дата: 22.11.11 10:12
Оценка:
Здравствуйте, Baudolino, Вы писали:

[...]

а как же пункт Do not use an Enum suffix on Enum type names.

отсюда ?
по сути то что вы добавили Value эквивалентно Enum
Re[3]: Именование enum
От: Baudolino  
Дата: 22.11.11 13:29
Оценка:
P>отсюда ?
P>по сути то что вы добавили Value эквивалентно Enum
Ну если так говорит NC, то могу предложить KnownApplicationType (поскольку в перечислении будут описаны только заранее известные типы приложений)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.