User user = APILocator.getUserAPI().getSystemUser();
// DOTCMS - 4393
// Publishes the files associated with the Contentlet
List<Field> fields = FieldsCache.getFieldsByStructureInode(contentlet.getStructureInode());
Language defaultLang=APILocator.getLanguageAPI().getDefaultLanguage();
for (Field field : fields) {
if (field.getFieldType().equals(Field.FieldType.IMAGE.toString())
|| field.getFieldType().equals(Field.FieldType.FILE.toString())) {
try {
String value = "";
if(UtilMethods.isSet(getFieldValue(contentlet, field))){
value = getFieldValue(contentlet, field).toString();
}
//Identifier id = (Identifier) InodeFactory.getInode(value, Identifier.class);
Identifier id = APILocator.getIdentifierAPI().find(value);
if (InodeUtils.isSet(id.getInode()) && id.getAssetType().equals("contentlet")) {
//Find the contentlet and try to publish it only if it does not have a live version
Contentlet fileAssetCont;
try {
findContentletByIdentifier( id.getId(), true, defaultLang.getId(), APILocator.getUserAPI().getSystemUser(), false );
} catch ( DotContentletStateException se ) {
fileAssetCont = findContentletByIdentifier( id.getId(), false, defaultLang.getId(), APILocator.getUserAPI().getSystemUser(), false );
publish( fileAssetCont, APILocator.getUserAPI().getSystemUser(), false );
}
}else if(InodeUtils.isSet(id.getInode())){
File file = (File) APILocator.getVersionableAPI().findWorkingVersion(id, APILocator.getUserAPI().getSystemUser(), false);
PublishFactory.publishAsset(file, user, false, isNewVersion);