public class org.finos.legend.engine.ide.api.find.FindInSources extends java.lang.Object
{
private static final java.lang.String STRING_PARAM;
private static final java.lang.String REGEX_PARAM;
private static final java.lang.String SOURCE_REGEX_PARAM;
private static final java.lang.String CASE_SENSITIVE_PARAM;
private static final java.lang.String MAX_RESULTS_PARAM;
private final org.finos.legend.engine.ide.session.PureSession session;
public void <init>(org.finos.legend.engine.ide.session.PureSession)
{
org.finos.legend.engine.ide.api.find.FindInSources v;
org.finos.legend.engine.ide.session.PureSession v;
v := @this: org.finos.legend.engine.ide.api.find.FindInSources;
v := @parameter: org.finos.legend.engine.ide.session.PureSession;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.ide.api.find.FindInSources: org.finos.legend.engine.ide.session.PureSession session> = v;
return;
}
public javax.ws.rs.core.Response findInSources(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws java.io.IOException
{
javax.servlet.http.HttpServletRequest v;
javax.ws.rs.core.Response v;
javax.ws.rs.core.Response$ResponseBuilder v;
javax.servlet.http.HttpServletResponse v;
javax.ws.rs.core.StreamingOutput v;
org.finos.legend.engine.ide.api.find.FindInSources v;
v := @this: org.finos.legend.engine.ide.api.find.FindInSources;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
v = staticinvoke <org.finos.legend.engine.ide.api.find.FindInSources$lambda_findInSources_0__142: javax.ws.rs.core.StreamingOutput bootstrap$(org.finos.legend.engine.ide.api.find.FindInSources,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)>(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()>();
return v;
}
private java.util.regex.Pattern getSourcePattern(java.lang.String)
{
java.lang.String v;
java.util.regex.Pattern v;
org.finos.legend.engine.ide.api.find.FindInSources v;
v := @this: org.finos.legend.engine.ide.api.find.FindInSources;
v := @parameter: java.lang.String;
if v != null goto label;
v = null;
goto label;
label:
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>(v);
label:
return v;
}
private int writeResultsJSON(java.io.OutputStream, org.eclipse.collections.api.RichIterable, int) throws java.io.IOException
{
byte[] v, v, v, v, v, v, v, v;
org.eclipse.collections.api.multimap.Multimap v;
org.eclipse.collections.api.list.MutableList v;
org.eclipse.collections.api.RichIterable v, v, v;
boolean v, v, v, v, v;
org.eclipse.collections.api.block.function.Function v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.finos.legend.engine.ide.api.find.FindInSources v;
java.io.OutputStream v;
java.util.Iterator v, v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.ide.api.find.FindInSources;
v := @parameter: java.io.OutputStream;
v := @parameter: org.eclipse.collections.api.RichIterable;
v := @parameter: int;
v = "[";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = 0;
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: boolean notEmpty()>();
if v == 0 goto label;
v = <org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: org.eclipse.collections.api.block.function.Function SOURCE_ID>;
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: org.eclipse.collections.api.multimap.Multimap groupBy(org.eclipse.collections.api.block.function.Function)>(v);
v = 1;
v = interfaceinvoke v.<org.eclipse.collections.api.multimap.Multimap: org.eclipse.collections.api.RichIterable keysView()>();
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: org.eclipse.collections.api.list.MutableList toSortedList()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
if v == 0 goto label;
v = 0;
v = "{\"sourceId\":\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
goto label;
label:
v = ",{\"sourceId\":\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
label:
v = staticinvoke <org.json.simple.JSONValue: java.lang.String escape(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = "\",\"coordinates\":[";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = 1;
v = interfaceinvoke v.<org.eclipse.collections.api.multimap.Multimap: org.eclipse.collections.api.RichIterable get(java.lang.Object)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.RichIterable: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
if v == 0 goto label;
v = 0;
goto label;
label:
v = ",";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
label:
specialinvoke v.<org.finos.legend.engine.ide.api.find.FindInSources: void writeSourceCoordinatesJSON(java.io.OutputStream,org.finos.legend.pure.m.serialization.runtime.SourceCoordinates)>(v, v);
v = v + 1;
if v <= v goto label;
label:
v = "]}";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
if v <= v goto label;
label:
v = "]";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
if v <= v goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
private void writeSourceCoordinatesJSON(java.io.OutputStream, org.finos.legend.pure.m.serialization.runtime.SourceCoordinates) throws java.io.IOException
{
byte[] v, v, v, v, v, v, v, v, v, v;
int v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.ide.api.find.FindInSources v;
java.io.OutputStream v;
org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview v, v;
org.finos.legend.pure.m.serialization.runtime.SourceCoordinates v;
v := @this: org.finos.legend.engine.ide.api.find.FindInSources;
v := @parameter: java.io.OutputStream;
v := @parameter: org.finos.legend.pure.m.serialization.runtime.SourceCoordinates;
v = "{\"startLine\":";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: int getStartLine()>();
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = ",\"startColumn\":";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: int getStartColumn()>();
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = ",\"endLine\":";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: int getEndLine()>();
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = ",\"endColumn\":";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: int getEndColumn()>();
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview getPreview()>();
if v == null goto label;
v = ",\"preview\":";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates: org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview getPreview()>();
specialinvoke v.<org.finos.legend.engine.ide.api.find.FindInSources: void writePreviewJSON(java.io.OutputStream,org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview)>(v, v);
label:
v = "}";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
return;
}
private void writePreviewJSON(java.io.OutputStream, org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview) throws java.io.IOException
{
byte[] v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.ide.api.find.FindInSources v;
java.io.OutputStream v;
org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview v;
v := @this: org.finos.legend.engine.ide.api.find.FindInSources;
v := @parameter: java.io.OutputStream;
v := @parameter: org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview;
v = "{\"before\":\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview: java.lang.String getBeforeText()>();
v = staticinvoke <org.json.simple.JSONValue: java.lang.String escape(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = "\",\"found\":\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview: java.lang.String getFoundText()>();
v = staticinvoke <org.json.simple.JSONValue: java.lang.String escape(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = "\",\"after\":\"";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = virtualinvoke v.<org.finos.legend.pure.m.serialization.runtime.SourceCoordinates$Preview: java.lang.String getAfterText()>();
v = staticinvoke <org.json.simple.JSONValue: java.lang.String escape(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = "\"}";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
return;
}
}