Регистрация  |  Вход

Apex type в имя каталога.

Кто-нибудь знает как зная Apextype получить имя каталога и расширение для файла?

Пример. Apexclass мапится в classes и испозует файлы с расширением cls

Кто-нибудь знает как зная Apextype получить имя каталога и расширение для файла?

Пример. Apexclass мапится в classes и испозует файлы с расширением cls

wilder
Кто-нибудь знает как зная Apextype получить имя каталога и расширение для файла?

Пример. Apexclass мапится в classes и испозует файлы с расширением cls


Я использовал таску describe, но, вероятно, это есть и в API.

[quote="wilder"]Кто-нибудь знает как зная Apextype получить имя каталога и расширение для файла?

Пример. Apexclass мапится в classes и испозует файлы с расширением cls[/quote]
Я использовал таску describe, но, вероятно, это есть и в API.
Просто полезные ссылки:
http://www.salesforce.com/us/developer/docs/api_tooling/Content/intro_rest_overview.htm
Очень похоже на - /sobjects/SObjectName/describe/

http://www.salesforce.com/us/developer/docs/api_meta/Content/meta_describe.htm

Gres
Я использовал таску describe, но, вероятно, это есть и в API.

Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.

[quote="Gres"]Я использовал таску describe, но, вероятно, это есть и в API.[/quote]

Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.    

wilder
Gres
Я использовал таску describe, но, вероятно, это есть и в API.

Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.


Ну, а что тебе тогда мешает сделать это 1 раз и сохранить, а потом использовать.
Если ты посмотришь в проект MM, в папочке config есть файл .describe
Если найдешь более удобный способ, напиши мне, я тоже у себя поправлю)

[quote="wilder"][quote="Gres"]Я использовал таску describe, но, вероятно, это есть и в API.[/quote]

Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.[/quote]
Ну, а что тебе тогда мешает сделать это 1 раз и сохранить, а потом использовать.
Если ты посмотришь в проект MM, в папочке config есть файл .describe
Если найдешь более удобный способ, напиши мне, я тоже у себя поправлю)

Gres
wilder
Gres
Я использовал таску describe, но, вероятно, это есть и в API.

Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.


Ну, а что тебе тогда мешает сделать это 1 раз и сохранить, а потом использовать.
Если ты посмотришь в проект MM, в папочке config есть файл .describe
Если найдешь более удобный способ, напиши мне, я тоже у себя поправлю)

Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.

[quote="Gres"][quote="wilder"][quote="Gres"]Я использовал таску describe, но, вероятно, это есть и в API.[/quote]

Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.[/quote]
Ну, а что тебе тогда мешает сделать это 1 раз и сохранить, а потом использовать.
Если ты посмотришь в проект MM, в папочке config есть файл .describe
Если найдешь более удобный способ, напиши мне, я тоже у себя поправлю)[/quote]

Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.

wilder
Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам.

Что-то ты путаешь, describe, как раз возвращает информацию по всем типам, а вот для listMetadata нужен конкретный тип.

[quote="wilder"]Все правильно. Вот только для этого нужно брать какой-то элемент из соответствующего типа и делать дескрайб. Это несколько накладно по колаутам. [/quote]
Что-то ты путаешь, describe, как раз возвращает информацию по всем типам, а вот для listMetadata нужен конкретный тип.

wilder
Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.

Думаешь будут часто меняться типы данных?

[quote="wilder"]Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.[/quote]
Думаешь будут часто меняться типы данных?

Gres
wilder
Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.

Думаешь будут часто меняться типы данных?

От релиза к релизу меняются.

[quote="Gres"][quote="wilder"]Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.[/quote]
Думаешь будут часто меняться типы данных?[/quote]

От релиза к релизу меняются.

wilder
Gres
wilder
Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.

Думаешь будут часто меняться типы данных?

От релиза к релизу меняются.


Ну вот тебе и ответ

[quote="wilder"][quote="Gres"][quote="wilder"]Да потому что не понятно в какой момент обновлять эти дескрайбы. Только по запрсу от пользователя? Я считаю это не правильно.[/quote]
Думаешь будут часто меняться типы данных?[/quote]

От релиза к релизу меняются.[/quote]
Ну вот тебе и ответ

Посмотри все-таки, как реализован DescribeMetadataTask, я думаю, это будет полезно.

try
{
MetadataConnection metadataStub = getMetadataConnection();
DescribeMetadataResult res = metadataStub.describeMetadata(getApiVersion());
StringBuffer sb = new StringBuffer();
if ((res != null) && (res.getMetadataObjects().length > 0)) {
for (DescribeMetadataObject obj : res.getMetadataObjects())
{
sb.append("************************************************************\n");
sb.append("XMLName: " + obj.getXmlName() + "\n");
sb.append("DirName: " + obj.getDirectoryName() + "\n");
sb.append("Suffix: " + obj.getSuffix() + "\n");
sb.append("HasMetaFile: " + obj.getMetaFile() + "\n");
sb.append("InFolder: " + obj.getInFolder() + "\n");
sb.append("ChildObjects: " + arrayToString(obj.getChildXmlNames()));
sb.append("************************************************************\n");
}
} else {
sb.append("Failed to obtain metadata types.");
}
dumpResults(sb.toString());
}
catch (Exception ioe)
{
throw new BuildException(ioe);
}

Здесь мы за 1 запрос получаем все вышеперечисленные данные.

Посмотри все-таки, как реализован DescribeMetadataTask, я думаю, это будет полезно.
[code]
    try
    {
      MetadataConnection metadataStub = getMetadataConnection();
      DescribeMetadataResult res = metadataStub.describeMetadata(getApiVersion());
      StringBuffer sb = new StringBuffer();
      if ((res != null) && (res.getMetadataObjects().length > 0)) {
        for (DescribeMetadataObject obj : res.getMetadataObjects())
        {
          sb.append("************************************************************\n");
          sb.append("XMLName: " + obj.getXmlName() + "\n");
          sb.append("DirName: " + obj.getDirectoryName() + "\n");
          sb.append("Suffix: " + obj.getSuffix() + "\n");
          sb.append("HasMetaFile: " + obj.getMetaFile() + "\n");
          sb.append("InFolder: " + obj.getInFolder() + "\n");
          sb.append("ChildObjects: " + arrayToString(obj.getChildXmlNames()));
          sb.append("************************************************************\n");
        }
      } else {
        sb.append("Failed to obtain metadata types.");
      }
      dumpResults(sb.toString());
    }
    catch (Exception ioe)
    {
      throw new BuildException(ioe);
    }
[/code]
Здесь мы за 1 запрос получаем все вышеперечисленные данные.

Пасиб ! это работает.

Пасиб ! это работает.

wilder
Пасиб ! это работает.

Хоть чем-то тебе помог)

[quote="wilder"]Пасиб ! это работает.[/quote]
Хоть чем-то тебе помог)