All Downloads are FREE. Search and download functionalities are using the official Maven repository.

templates.ContainerPersistenceTrait.vm Maven / Gradle / Ivy

There is a newer version: 3.5.12
Show newest version
#* @vtlvariable name="formatedFactoryName" type="java.lang.String" *#
#* @vtlvariable name="packElem" type="java.lang.String" *#
#* @vtlvariable name="ctx" type="org.kevoree.modeling.kotlin.generator.GenerationContext" *#
#* @vtlvariable name="FQNHelper" type="org.kevoree.modeling.kotlin.generator.ProcessorHelper" *#


package ${packElem}

#if($ctx.timeAware)
trait ${formatedFactoryName}PersistenceImpl : ${formatedFactoryName}Impl,org.kevoree.modeling.api.time.TimeAwareKMFContainer {
#else
  trait ${formatedFactoryName}PersistenceImpl : ${formatedFactoryName}Impl,org.kevoree.modeling.api.persistence.KMFContainerProxy {
#end


    fun checkLazyLoad(){
        if(!isResolved){
            isResolved = true
            inResolution = true
            val content = originFactory!!.getTraces(this)
            val previousParent = internal_eContainer
            internal_eContainer = null
            content?.silentlyApplyOn(this)
            internal_eContainer = previousParent
            inResolution = false
        }
    }

    override fun setOriginPath(path: String) {
        path_cache = path
        if(path != "" && path != "/"){

            //set key_cache
            key_cache = path.substring(path.lastIndexOf("[")+1,path.lastIndexOf("]"))

            var parentPath: String = "/"
            var currentParentRelationName = ""
            if(path.contains("/")){
                parentPath = path.substring(0, path.lastIndexOf("/"))
                currentParentRelationName = path.substring(path.lastIndexOf("/") + 1, path.size - 1)
                currentParentRelationName = currentParentRelationName.substring(0, currentParentRelationName.lastIndexOf("["))
            }
            val parentElem = originFactory!!.lookupFrom(parentPath,this)!!
            internal_unsetCmd = ${FQNHelper.fqn($ctx, $ctx.basePackageForUtilitiesGeneration)}.container.RemoveFromContainerCommand(parentElem, org.kevoree.modeling.api.util.ActionType.REMOVE, currentParentRelationName, this)
            internal_eContainer = parentElem
            internal_containmentRefName = currentParentRelationName

        }
        path_cache = path

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy