public class org.finos.legend.engine.ide.api.FileManagement extends java.lang.Object
{
private static final java.util.regex.Pattern FILE_NAME_PATTERN;
private final org.finos.legend.engine.ide.session.PureSession session;
private static final org.eclipse.collections.api.block.predicate.Predicate IGNORED_NODE;
private static final java.util.Comparator NODE_COMPARATOR;
public void <init>(org.finos.legend.engine.ide.session.PureSession)
{
org.finos.legend.engine.ide.session.PureSession v;
org.finos.legend.engine.ide.api.FileManagement v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: org.finos.legend.engine.ide.session.PureSession;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session> = v;
return;
}
public javax.ws.rs.core.Response deleteFile(java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
{
org.finos.legend.engine.ide.api.FileManagement v;
javax.servlet.http.HttpServletRequest v;
org.finos.legend.engine.ide.session.PureSession v;
javax.ws.rs.core.Response$Status v;
java.lang.String v, v;
org.finos.legend.pure.m.serialization.runtime.PureRuntime v;
javax.servlet.http.HttpServletResponse v;
javax.ws.rs.core.StreamingOutput v, v;
java.lang.Exception v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.String;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
label:
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.runtime.PureRuntime getPureRuntime()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/\u0001");
virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: void delete(java.lang.String)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_deleteFile_1__81: javax.ws.rs.core.StreamingOutput bootstrap$()>();
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <javax.ws.rs.core.Response$Status: javax.ws.rs.core.Response$Status BAD_REQUEST>;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(javax.ws.rs.core.Response$Status)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_deleteFile_2__82: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,java.lang.Exception)>(v, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
return v;
catch java.lang.Exception from label to label with label;
}
public javax.ws.rs.core.Response newFile(java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
{
org.finos.legend.engine.ide.api.FileManagement v;
javax.servlet.http.HttpServletRequest v;
org.finos.legend.engine.ide.session.PureSession v;
javax.ws.rs.core.Response$Status v;
java.lang.String v, v;
org.finos.legend.pure.m.serialization.runtime.PureRuntime v;
javax.servlet.http.HttpServletResponse v;
javax.ws.rs.core.StreamingOutput v, v;
java.lang.Exception v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.String;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
label:
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.runtime.PureRuntime getPureRuntime()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/\u0001");
virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: void create(java.lang.String)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_newFile_3__83: javax.ws.rs.core.StreamingOutput bootstrap$()>();
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <javax.ws.rs.core.Response$Status: javax.ws.rs.core.Response$Status BAD_REQUEST>;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(javax.ws.rs.core.Response$Status)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_newFile_4__84: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,java.lang.Exception)>(v, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
return v;
catch java.lang.Exception from label to label with label;
}
public javax.ws.rs.core.Response newFolder(java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
{
org.finos.legend.engine.ide.api.FileManagement v;
javax.servlet.http.HttpServletRequest v;
org.finos.legend.engine.ide.session.PureSession v;
javax.ws.rs.core.Response$Status v;
java.lang.String v, v;
javax.servlet.http.HttpServletResponse v;
javax.ws.rs.core.StreamingOutput v, v;
java.lang.Exception v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.String;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
label:
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage getCodeStorage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/\u0001");
interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: void createFolder(java.lang.String)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_newFolder_5__85: javax.ws.rs.core.StreamingOutput bootstrap$()>();
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <javax.ws.rs.core.Response$Status: javax.ws.rs.core.Response$Status BAD_REQUEST>;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(javax.ws.rs.core.Response$Status)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_newFolder_6__86: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,java.lang.Exception)>(v, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
return v;
catch java.lang.Exception from label to label with label;
}
public javax.ws.rs.core.Response renameFile(org.finos.legend.engine.ide.api.FileManagement$RenameFileInput, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
{
org.finos.legend.engine.ide.api.FileManagement v;
javax.servlet.http.HttpServletRequest v;
java.util.regex.Matcher v, v;
org.finos.legend.engine.ide.session.PureSession v;
javax.ws.rs.core.Response$Status v;
java.lang.String v, v;
boolean v, v;
org.finos.legend.pure.m.serialization.runtime.PureRuntime v;
javax.servlet.http.HttpServletResponse v;
javax.ws.rs.core.StreamingOutput v, v;
java.lang.IllegalArgumentException v, v;
java.lang.Exception v;
org.finos.legend.engine.ide.api.FileManagement$RenameFileInput v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v;
java.util.regex.Pattern v, v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: org.finos.legend.engine.ide.api.FileManagement$RenameFileInput;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
label:
v = v.<org.finos.legend.engine.ide.api.FileManagement$RenameFileInput: java.lang.String oldPath>;
v = v.<org.finos.legend.engine.ide.api.FileManagement$RenameFileInput: java.lang.String newPath>;
if v == null goto label;
v = <org.finos.legend.engine.ide.api.FileManagement: java.util.regex.Pattern FILE_NAME_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Invalid old path");
throw v;
label:
if v == null goto label;
v = <org.finos.legend.engine.ide.api.FileManagement: java.util.regex.Pattern FILE_NAME_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Invalid new path");
throw v;
label:
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.runtime.PureRuntime getPureRuntime()>();
virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.PureRuntime: void move(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_renameFile_7__87: javax.ws.rs.core.StreamingOutput bootstrap$(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <javax.ws.rs.core.Response$Status: javax.ws.rs.core.Response$Status BAD_REQUEST>;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(javax.ws.rs.core.Response$Status)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_renameFile_8__88: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,java.lang.Exception)>(v, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
return v;
catch java.lang.Exception from label to label with label;
}
public javax.ws.rs.core.Response dir(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
{
org.eclipse.collections.api.block.predicate.Predicate v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.ide.api.FileManagement v;
org.eclipse.collections.api.LazyIterable v;
javax.servlet.http.HttpServletRequest v;
org.eclipse.collections.api.RichIterable v;
org.finos.legend.engine.ide.session.PureSession v, v;
javax.ws.rs.core.Response$Status v;
java.lang.String v, v;
boolean v, v, v;
java.util.Iterator v;
javax.servlet.http.HttpServletResponse v;
javax.ws.rs.core.StreamingOutput v, v;
java.lang.Exception v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v;
java.lang.Object v, v;
java.lang.StringBuilder v;
java.util.Comparator v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v, v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
label:
interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setContentType(java.lang.String)>("application/json");
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>("parameters");
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("[");
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage getCodeStorage()>();
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: org.eclipse.collections.api.RichIterable getFiles(java.lang.String)>(v);
v = <org.finos.legend.engine.ide.api.FileManagement: org.eclipse.collections.api.block.predicate.Predicate IGNORED_NODE>;
v = staticinvoke <org.eclipse.collections.impl.utility.LazyIterate: org.eclipse.collections.api.LazyIterable reject(java.lang.Iterable,org.eclipse.collections.api.block.predicate.Predicate)>(v, v);
v = <org.finos.legend.engine.ide.api.FileManagement: java.util.Comparator NODE_COMPARATOR>;
v = interfaceinvoke v.<org.eclipse.collections.api.LazyIterable: org.eclipse.collections.api.list.MutableList toSortedList(java.util.Comparator)>(v);
v = "/";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_dir_9__90: java.util.Comparator bootstrap$()>();
interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.MutableList sortThis(java.util.Comparator)>(v);
label:
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: boolean notEmpty()>();
if v == 0 goto label;
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage getCodeStorage()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
specialinvoke v.<org.finos.legend.engine.ide.api.FileManagement: void writeNode(java.lang.StringBuilder,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage,java.lang.String,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)>(v, v, v, v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(44);
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
specialinvoke v.<org.finos.legend.engine.ide.api.FileManagement: void writeNode(java.lang.StringBuilder,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage,java.lang.String,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)>(v, v, v, v);
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(93);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_dir_10__89: javax.ws.rs.core.StreamingOutput bootstrap$(java.lang.StringBuilder)>(v);
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <javax.ws.rs.core.Response$Status: javax.ws.rs.core.Response$Status BAD_REQUEST>;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(javax.ws.rs.core.Response$Status)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_dir_11__91: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,java.lang.Exception)>(v, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
return v;
catch java.lang.Exception from label to label with label;
}
public javax.ws.rs.core.Response fileAsJson(java.lang.String)
{
byte[] v;
org.finos.legend.engine.ide.api.FileManagement v;
org.finos.legend.engine.ide.session.PureSession v;
javax.ws.rs.core.Response$Status v;
java.lang.String v, v, v, v, v;
java.io.IOException v, v;
javax.ws.rs.core.StreamingOutput v, v;
java.lang.RuntimeException v;
java.lang.Exception v, v;
javax.ws.rs.core.Response v, v;
javax.ws.rs.core.Response$ResponseBuilder v, v, v;
java.lang.StringBuilder v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.String;
label:
v = v.<org.finos.legend.engine.ide.api.FileManagement: org.finos.legend.engine.ide.session.PureSession session>;
v = virtualinvoke v.<org.finos.legend.engine.ide.session.PureSession: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage getCodeStorage()>();
if v != null goto label;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Cannot find code storage");
throw v;
label:
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: byte[] getContentAsBytes(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Error accessing resource \"");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(34);
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
if v == null goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(": ");
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = new java.io.IOException;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
if v != null goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not find resource \"\u0001\"");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_fileAsJson_12__92: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,byte[],org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage,java.lang.String)>(v, v, v, v);
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder ok(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
label:
return v;
label:
v := @caughtexception;
v = <javax.ws.rs.core.Response$Status: javax.ws.rs.core.Response$Status BAD_REQUEST>;
v = staticinvoke <javax.ws.rs.core.Response: javax.ws.rs.core.Response$ResponseBuilder status(javax.ws.rs.core.Response$Status)>(v);
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_fileAsJson_13__93: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.FileManagement,java.lang.Exception)>(v, v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response$ResponseBuilder entity(java.lang.Object)>(v);
v = virtualinvoke v.<javax.ws.rs.core.Response$ResponseBuilder: javax.ws.rs.core.Response build()>();
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
private byte[] transformContent(byte[], boolean)
{
byte[] v, v;
org.finos.legend.engine.ide.api.FileManagement v;
org.json.simple.JSONObject v;
java.lang.Boolean v;
java.lang.String v, v;
boolean v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: byte[];
v := @parameter: boolean;
v = new org.json.simple.JSONObject;
specialinvoke v.<org.json.simple.JSONObject: void <init>()>();
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(byte[])>(v);
virtualinvoke v.<org.json.simple.JSONObject: java.lang.Object put(java.lang.Object,java.lang.Object)>("content", v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
virtualinvoke v.<org.json.simple.JSONObject: java.lang.Object put(java.lang.Object,java.lang.Object)>("RO", v);
v = virtualinvoke v.<org.json.simple.JSONObject: java.lang.String toJSONString()>();
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
return v;
}
private void writeNode(java.lang.StringBuilder, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage, java.lang.String, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)
{
org.finos.legend.engine.ide.api.FileManagement v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v, v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v;
boolean v, v, v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.StringBuilder;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode;
v = "/";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
goto label;
label:
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/\u0001");
label:
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: boolean isDirectory()>();
if v == 0 goto label;
v = "/";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.finos.legend.engine.ide.api.FileManagement: void writeRepoNode(java.lang.StringBuilder,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage,java.lang.String,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)>(v, v, v, v);
goto label;
label:
specialinvoke v.<org.finos.legend.engine.ide.api.FileManagement: void writeDirectoryNode(java.lang.StringBuilder,java.lang.String,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)>(v, v, v, v);
goto label;
label:
specialinvoke v.<org.finos.legend.engine.ide.api.FileManagement: void writeFileNode(java.lang.StringBuilder,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage,java.lang.String,org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)>(v, v, v, v);
label:
return;
}
private void writeRepoNode(java.lang.StringBuilder, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage, java.lang.String, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)
{
org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository v, v;
long v;
org.finos.legend.engine.ide.api.FileManagement v;
byte v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage v;
java.lang.String v, v, v, v, v;
boolean v, v, v;
java.util.Optional v;
java.lang.Object v;
java.lang.StringBuilder v, v, v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.StringBuilder;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode;
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.vcs.VersionControlledCodeStorage: java.util.Optional getCurrentRevision(java.lang.String)>(v);
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
goto label;
label:
v = 0L;
label:
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.vcs.VersionControlledCodeStorage: org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository getRepositoryForPath(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("{\"li_attr\":{\"id\":\"file_");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"path\":\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"file\":false,\"repo\":true");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\"RO\":");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.vcs.VersionControlledCodeStorage: org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository getRepositoryForPath(java.lang.String)>(v);
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.vcs.VersionControlledCodeStorage: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage getOriginalCodeStorage(org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository)>(v);
v = v instanceof org.finos.legend.pure.m.serialization.filesystem.usercodestorage.ImmutableRepositoryCodeStorage;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("},\"text\":\"");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v cmp 0L;
if v < 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"icon\":\"/ide/pure/icons/filesystem/cloud.png\",\"state\":\"closed\",\"children\":true}");
goto label;
label:
v = "platform";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" (");
v = <org.finos.legend.pure.m.serialization.filesystem.usercodestorage.classpath.Version: java.lang.String SERVER>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(41);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"icon\":\"/ide/pure/icons/wrench.png\",\"state\":\"closed\",\"children\":true}");
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"icon\":\"/ide/pure/icons/scratchpad.png\",\"state\":\"closed\",\"children\":true}");
label:
return;
}
private void writeDirectoryNode(java.lang.StringBuilder, java.lang.String, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)
{
org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository v;
org.finos.legend.engine.ide.api.FileManagement v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage v;
java.lang.String v, v;
boolean v, v, v;
java.lang.StringBuilder v, v, v, v, v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.StringBuilder;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("{\"li_attr\":{\"id\":\"file_");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"path\":\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"file\":false");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\"RO\":");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository getRepositoryForPath(java.lang.String)>(v);
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage getOriginalCodeStorage(org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository)>(v);
v = v instanceof org.finos.legend.pure.m.serialization.filesystem.usercodestorage.ImmutableRepositoryCodeStorage;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("},\"text\":\"");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"state\":\"closed\",\"children\":");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: boolean isEmptyFolder(java.lang.String)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("}");
return;
}
private void writeFileNode(java.lang.StringBuilder, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage, java.lang.String, org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode)
{
org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNodeStatus v, v, v;
org.finos.legend.engine.ide.api.FileManagement v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage v;
java.lang.StringBuilder v, v, v, v;
java.lang.String v, v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode v;
org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage v;
boolean v;
v := @this: org.finos.legend.engine.ide.api.FileManagement;
v := @parameter: java.lang.StringBuilder;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage;
v := @parameter: java.lang.String;
v := @parameter: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("{\"li_attr\":{\"id\":\"file_");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"path\":\"");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"file\":true");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\"RO\":");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository getRepositoryForPath(java.lang.String)>(v);
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.MutableRepositoryCodeStorage: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.RepositoryCodeStorage getOriginalCodeStorage(org.finos.legend.pure.m.serialization.filesystem.repository.CodeRepository)>(v);
v = v instanceof org.finos.legend.pure.m.serialization.filesystem.usercodestorage.ImmutableRepositoryCodeStorage;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNodeStatus getStatus()>();
v = <org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNodeStatus: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNodeStatus NORMAL>;
if v == v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",\"statusType\":\"");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNodeStatus getStatus()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(34);
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("},\"text\":\"");
v = interfaceinvoke v.<org.finos.legend.pure.m.serialization.filesystem.usercodestorage.CodeStorageNode: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\",\"icon\":\"/ide/pure/icons/filesystem/txt.png\"}");
return;
}
static void <clinit>()
{
java.util.regex.Pattern v;
java.util.Comparator v;
org.eclipse.collections.api.block.predicate.Predicate v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("/?+(\\w+/)*+\\w+(\\.\\w++)*+");
<org.finos.legend.engine.ide.api.FileManagement: java.util.regex.Pattern FILE_NAME_PATTERN> = v;
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_static_748ecbaa_1__95: org.eclipse.collections.api.block.predicate.Predicate bootstrap$()>();
<org.finos.legend.engine.ide.api.FileManagement: org.eclipse.collections.api.block.predicate.Predicate IGNORED_NODE> = v;
v = staticinvoke <org.finos.legend.engine.ide.api.FileManagement$lambda_static_0__96: java.util.Comparator bootstrap$()>();
<org.finos.legend.engine.ide.api.FileManagement: java.util.Comparator NODE_COMPARATOR> = v;
return;
}
}