/** * Создает в базе новый экземпляр объекта по заданному шаблону в первоначальном статусе и * возвращает его. * * @param templateId - идентификатор шаблона. * @return - экземпляр объекта. */ public Instance createInstance(Long templateId) { ru.skycelot.plicanterra.metamodel.transfer.Template template = metamodel.getTemplate(templateId); Instance instance = InstanceInitializer.createInstanceFromTemplate(template); try (Database database = new Database(data)) { instance.id = database.getNextInstanceSequenceValue(); database.saveTemplateCodeOfInstance(instance.id, instance.template.code); instance.version = 1L; InsertQuery query = new InsertQuery(instance.template.code); query.addInlineColumn("ID", instance.id); query.addInlineColumn("STATUS_ID", instance.status.id); query.addInlineColumn("VERSION", instance.version); database.execute(query); return instance; } catch (IOException e) { throw new RuntimeException(e); } }
/** * Возвращает экземпляр объекта по заданному шаблону в первоначальном статусе без занесения в базу * данных. * * @param templateId - идентификатор шаблона. * @return - экземпляр объекта. */ public Instance getSketchInstance(Long templateId) { ru.skycelot.plicanterra.metamodel.transfer.Template template = metamodel.getTemplate(templateId); Instance result = InstanceInitializer.createInstanceFromTemplate(template); return result; }