diff --git a/cldk/analysis/__init__.py b/cldk/analysis/__init__.py
index 17b84c93..e7023807 100644
--- a/cldk/analysis/__init__.py
+++ b/cldk/analysis/__init__.py
@@ -3,5 +3,6 @@
from .program_dependence_graph import ProgramDependenceGraph
from .system_dependence_graph import SystemDependenceGraph
from .symbol_table import SymbolTable
+from .analysis_level import AnalysisLevel
-__all__ = ["CallGraph", "ProgramDependenceGraph", "SystemDependenceGraph", "SymbolTable"]
+__all__ = ["CallGraph", "ProgramDependenceGraph", "SystemDependenceGraph", "SymbolTable", "AnalysisLevel"]
diff --git a/cldk/analysis/analysis_level.py b/cldk/analysis/analysis_level.py
new file mode 100644
index 00000000..1e640af4
--- /dev/null
+++ b/cldk/analysis/analysis_level.py
@@ -0,0 +1,9 @@
+from enum import Enum
+
+
+class AnalysisLevel(str, Enum):
+ """Analysis levels"""
+ symbol_table = "symbol-table"
+ call_graph = "call-graph"
+ program_dependency_graph = "program-dependency-graph"
+ system_dependency_graph = "system-dependency-graph"
diff --git a/cldk/analysis/java/codeanalyzer/codeanalyzer.py b/cldk/analysis/java/codeanalyzer/codeanalyzer.py
index fafb09f8..c05e6b4a 100644
--- a/cldk/analysis/java/codeanalyzer/codeanalyzer.py
+++ b/cldk/analysis/java/codeanalyzer/codeanalyzer.py
@@ -12,9 +12,11 @@
from networkx import DiGraph
+from cldk.analysis import AnalysisLevel
from cldk.analysis.java.treesitter import JavaSitter
from cldk.models.java import JGraphEdges
-from cldk.models.java.models import JApplication, JCallable, JField, JMethodDetail, JType, JCompilationUnit
+from cldk.models.java.models import JApplication, JCallable, JField, JMethodDetail, JType, JCompilationUnit, \
+ JGraphEdgesST
from typing import Dict, List, Tuple
from typing import Union
@@ -49,14 +51,14 @@ class JCodeanalyzer:
"""
def __init__(
- self,
- project_dir: Union[str, Path],
- source_code: str | None,
- analysis_backend_path: Union[str, Path, None],
- analysis_json_path: Union[str, Path, None],
- analysis_level: str,
- use_graalvm_binary: bool,
- eager_analysis: bool,
+ self,
+ project_dir: Union[str, Path],
+ source_code: str | None,
+ analysis_backend_path: Union[str, Path, None],
+ analysis_json_path: Union[str, Path, None],
+ analysis_level: str,
+ use_graalvm_binary: bool,
+ eager_analysis: bool,
) -> None:
self.project_dir = project_dir
self.source_code = source_code
@@ -65,13 +67,13 @@ def __init__(
self.use_graalvm_binary = use_graalvm_binary
self.eager_analysis = eager_analysis
self.analysis_level = analysis_level
- self.application = self._init_codeanalyzer(analysis_level=1 if analysis_level == 'symbol_table' else 2)
+ self.application = self._init_codeanalyzer(
+ analysis_level=1 if analysis_level == AnalysisLevel.symbol_table else 2)
# Attributes related the Java code analysis...
- if analysis_level == 'symbol_table':
- self.call_graph: DiGraph | None = None
- else:
+ if analysis_level == AnalysisLevel.call_graph:
self.call_graph: DiGraph = self._generate_call_graph(using_symbol_table=False)
-
+ else:
+ self.call_graph: DiGraph | None = None
@staticmethod
def _download_or_update_code_analyzer(filepath: Path) -> str:
@@ -115,7 +117,8 @@ def _download_or_update_code_analyzer(filepath: Path) -> str:
if match:
current_datetime_str = match.group(0)
- if datetime.strptime(datetime_str, date_format) > datetime.strptime(current_datetime_str, date_format):
+ if datetime.strptime(datetime_str, date_format) > datetime.strptime(current_datetime_str,
+ date_format):
logger.info(f"Codeanalzyer jar is outdated. Downloading the latest version.")
# Remove the older codeanalyzer jar
for jarfile in current_codeanalyzer_jars:
@@ -164,7 +167,8 @@ def _get_codeanalyzer_exec(self) -> List[str]:
"""
if self.use_graalvm_binary:
- with resources.as_file(resources.files("cldk.analysis.java.codeanalyzer.bin") / "codeanalyzer") as codeanalyzer_bin_path:
+ with resources.as_file(
+ resources.files("cldk.analysis.java.codeanalyzer.bin") / "codeanalyzer") as codeanalyzer_bin_path:
codeanalyzer_exec = shlex.split(codeanalyzer_bin_path.__str__())
else:
print(f'analysis path: {self.analysis_json_path}')
@@ -201,7 +205,8 @@ def _init_codeanalyzer(self, analysis_level=1) -> JApplication:
if self.analysis_json_path is None:
logger.info("Reading analysis from the pipe.")
- codeanalyzer_args = codeanalyzer_exec + shlex.split(f"-i {Path(self.project_dir)} --analysis-level={analysis_level}")
+ codeanalyzer_args = codeanalyzer_exec + shlex.split(
+ f"-i {Path(self.project_dir)} --analysis-level={analysis_level}")
try:
logger.info(f"Running codeanalyzer: {' '.join(codeanalyzer_args)}")
console_out: CompletedProcess[str] = subprocess.run(
@@ -221,7 +226,8 @@ def _init_codeanalyzer(self, analysis_level=1) -> JApplication:
# flag is set, we'll run the analysis every time the object is created. This will happen regradless
# of the existence of the analysis file.
# Create the executable command for codeanalyzer.
- codeanalyzer_args = codeanalyzer_exec + shlex.split(f"-i {Path(self.project_dir)} --analysis-level={analysis_level} -o {self.analysis_json_path}")
+ codeanalyzer_args = codeanalyzer_exec + shlex.split(
+ f"-i {Path(self.project_dir)} --analysis-level={analysis_level} -o {self.analysis_json_path}")
try:
logger.info(f"Running codeanalyzer subprocess with args {codeanalyzer_args}")
@@ -257,7 +263,8 @@ def _codeanalyzer_single_file(self):
try:
print(f"Running {' '.join(codeanalyzer_cmd)}")
logger.info(f"Running {' '.join(codeanalyzer_cmd)}")
- console_out: CompletedProcess[str] = subprocess.run(codeanalyzer_cmd, capture_output=True, text=True, check=True)
+ console_out: CompletedProcess[str] = subprocess.run(codeanalyzer_cmd, capture_output=True, text=True,
+ check=True)
if console_out.returncode != 0:
raise CodeanalyzerExecutionException(console_out.stderr)
return JApplication(**json.loads(console_out.stdout))
@@ -392,7 +399,7 @@ def get_call_graph_json(self) -> str:
callgraph_list.append(callgraph_dict)
return json.dumps(callgraph_list)
- def get_all_callers(self, target_class_name: str, target_method_signature: str) -> Dict:
+ def get_all_callers(self, target_class_name: str, target_method_signature: str, using_symbol_table: bool) -> Dict:
"""
Get all the caller details for a given java method.
@@ -403,10 +410,16 @@ def get_all_callers(self, target_class_name: str, target_method_signature: str)
"""
caller_detail_dict = {}
- if (target_method_signature, target_class_name) not in self.call_graph.nodes():
+ call_graph = None
+ if using_symbol_table:
+ call_graph = self.__raw_call_graph_using_symbol_table_target_method(target_class_name=target_class_name,
+ target_method_signature=target_method_signature)
+ else:
+ call_graph = self.call_graph
+ if (target_method_signature, target_class_name) not in call_graph.nodes():
return caller_detail_dict
- in_edge_view = self.call_graph.in_edges(
+ in_edge_view = call_graph.in_edges(
nbunch=(
target_method_signature,
target_class_name,
@@ -414,14 +427,16 @@ def get_all_callers(self, target_class_name: str, target_method_signature: str)
data=True,
)
caller_detail_dict["caller_details"] = []
- caller_detail_dict["target_method"] = self.call_graph.nodes[(target_method_signature, target_class_name)]["method_detail"]
+ caller_detail_dict["target_method"] = call_graph.nodes[(target_method_signature, target_class_name)][
+ "method_detail"]
for source, target, data in in_edge_view:
- cm = {"caller_method": self.call_graph.nodes[source]["method_detail"], "calling_lines": data["calling_lines"]}
+ cm = {"caller_method": call_graph.nodes[source]["method_detail"],
+ "calling_lines": data["calling_lines"]}
caller_detail_dict["caller_details"].append(cm)
return caller_detail_dict
- def get_all_callees(self, source_class_name: str, source_method_signature: str) -> Dict:
+ def get_all_callees(self, source_class_name: str, source_method_signature: str, using_symbol_table: bool) -> Dict:
"""
Get all the callee details for a given java method.
@@ -431,15 +446,22 @@ def get_all_callees(self, source_class_name: str, source_method_signature: str)
Callee details in a dictionary.
"""
callee_detail_dict = {}
- if (source_method_signature, source_class_name) not in self.call_graph.nodes():
+ call_graph = None
+ if using_symbol_table:
+ call_graph = self.__call_graph_using_symbol_table(qualified_class_name=source_class_name,
+ method_signature=source_method_signature)
+ else:
+ call_graph = self.call_graph
+ if (source_method_signature, source_class_name) not in call_graph.nodes():
return callee_detail_dict
- out_edge_view = self.call_graph.out_edges(nbunch=(source_method_signature, source_class_name), data=True)
+ out_edge_view = call_graph.out_edges(nbunch=(source_method_signature, source_class_name), data=True)
callee_detail_dict["callee_details"] = []
- callee_detail_dict["source_method"] = self.call_graph.nodes[(source_method_signature, source_class_name)]["method_detail"]
+ callee_detail_dict["source_method"] = call_graph.nodes[(source_method_signature, source_class_name)][
+ "method_detail"]
for source, target, data in out_edge_view:
- cm = {"callee_method": self.call_graph.nodes[target]["method_detail"]}
+ cm = {"callee_method": call_graph.nodes[target]["method_detail"]}
cm["calling_lines"] = data["calling_lines"]
callee_detail_dict["callee_details"].append(cm)
return callee_detail_dict
@@ -613,7 +635,8 @@ def get_all_sub_classes(self, qualified_class_name) -> Dict[str, JType]:
all_classes = self.get_all_classes()
sub_classes = {}
for cls in all_classes:
- if qualified_class_name in all_classes[cls].implements_list or qualified_class_name in all_classes[cls].extends_list:
+ if qualified_class_name in all_classes[cls].implements_list or qualified_class_name in all_classes[
+ cls].extends_list:
sub_classes[cls] = all_classes[cls]
return sub_classes
@@ -698,7 +721,235 @@ def get_implemented_interfaces(self, qualified_class_name) -> List[str]:
return list()
return ci.implements_list
- def get_class_call_graph(self, qualified_class_name: str, method_name: str | None = None) -> List[Tuple[JMethodDetail, JMethodDetail]]:
+ def get_class_call_graph_using_symbol_table(self, qualified_class_name: str,
+ method_signature: str | None = None) -> (
+ List)[Tuple[JMethodDetail, JMethodDetail]]:
+ """
+ Returns call graph using symbol table. The analysis will not be
+ complete as symbol table has known limitation of resolving types
+ Args:
+ qualified_class_name: qualified name of the class
+ method_signature: method signature of the starting point of the call graph
+
+ Returns: List[Tuple[JMethodDetail, JMethodDetail]]
+ List of edges
+ """
+ call_graph = self.__call_graph_using_symbol_table(qualified_class_name, method_signature)
+ if method_signature is None:
+ filter_criteria = {node for node in call_graph.nodes if node[1] == qualified_class_name}
+ else:
+ filter_criteria = {node for node in call_graph.nodes if
+ tuple(node) == (method_signature, qualified_class_name)}
+
+ graph_edges: List[Tuple[JMethodDetail, JMethodDetail]] = list()
+ for edge in call_graph.edges(nbunch=filter_criteria):
+ source: JMethodDetail = call_graph.nodes[edge[0]]["method_detail"]
+ target: JMethodDetail = call_graph.nodes[edge[1]]["method_detail"]
+ graph_edges.append((source, target))
+ return graph_edges
+
+ def __call_graph_using_symbol_table(self,
+ qualified_class_name: str,
+ method_signature: str, is_target_method: bool = False)-> DiGraph:
+ """
+ Generate call graph using symbol table
+ Args:
+ qualified_class_name: qualified class name
+ method_signature: method signature
+ is_target_method: is the input method is a target method. By default, it is the source method
+
+ Returns:
+ DiGraph: call graph
+ """
+ cg = nx.DiGraph()
+ sdg = None
+ if is_target_method:
+ sdg = None
+ else:
+ sdg = self.__raw_call_graph_using_symbol_table(qualified_class_name=qualified_class_name,
+ method_signature=method_signature)
+ tsu = JavaSitter()
+ edge_list = [
+ (
+ (jge.source.method.signature, jge.source.klass),
+ (jge.target.method.signature, jge.target.klass),
+ {
+ "type": jge.type,
+ "weight": jge.weight,
+ "calling_lines": tsu.get_calling_lines(jge.source.method.code, jge.target.method.signature),
+ },
+ )
+ for jge in sdg
+ ]
+ for jge in sdg:
+ cg.add_node(
+ (jge.source.method.signature, jge.source.klass),
+ method_detail=jge.source,
+ )
+ cg.add_node(
+ (jge.target.method.signature, jge.target.klass),
+ method_detail=jge.target,
+ )
+ cg.add_edges_from(edge_list)
+ return cg
+
+ def __raw_call_graph_using_symbol_table_target_method(self,
+ target_class_name: str,
+ target_method_signature: str,
+ cg=None) -> list[JGraphEdgesST]:
+ """
+ Generates call graph using symbol table information given the target method and target class
+ Args:
+ qualified_class_name: qualified class name
+ method_signature: source method signature
+ cg: call graph
+
+ Returns:
+ list[JGraphEdgesST]: list of call edges
+ """
+ if cg is None:
+ cg = []
+ target_method_details = self.get_method(qualified_class_name=target_class_name,
+ method_signature=target_method_signature)
+ for class_name in self.get_all_classes():
+ for method in self.get_all_methods_in_class(qualified_class_name=class_name):
+ method_details = self.get_method(qualified_class_name=class_name,
+ method_signature=method)
+ for call_site in method_details.call_sites:
+ source_method_details = None
+ source_class = ''
+ callee_signature = ''
+ if call_site.callee_signature != '':
+ pattern = r'\b(?:[a-zA-Z_][\w\.]*\.)+([a-zA-Z_][\w]*)\b|<[^>]*>'
+
+ # Find the part within the parentheses
+ start = call_site.callee_signature.find('(') + 1
+ end = call_site.callee_signature.rfind(')')
+
+ # Extract the elements inside the parentheses
+ elements = call_site.callee_signature[start:end].split(',')
+
+ # Apply the regex to each element
+ simplified_elements = [re.sub(pattern, r'\1', element.strip()) for element in elements]
+
+ # Reconstruct the string with simplified elements
+ callee_signature = f"{call_site.callee_signature[:start]}{', '.join(simplified_elements)}{call_site.callee_signature[end:]}"
+
+ if call_site.receiver_type != "":
+ # call to any class
+ if self.get_class(qualified_class_name=call_site.receiver_type):
+ if callee_signature==target_method_signature and call_site.receiver_type == target_class_name:
+ source_method_details = self.get_method(method_signature=method,
+ qualified_class_name=class_name)
+ source_class = class_name
+ else:
+ # check if any method exists with the signature in the class even if the receiver type is blank
+ if callee_signature == target_method_signature and class_name == target_class_name:
+ source_method_details = self.get_method(method_signature=method,
+ qualified_class_name=class_name)
+ source_class = class_name
+
+ if source_class != '' and source_method_details is not None:
+ source: JMethodDetail
+ target: JMethodDetail
+ type: str
+ weight: str
+ call_edge = JGraphEdgesST(
+ source=JMethodDetail(method_declaration=source_method_details.declaration,
+ klass=source_class,
+ method=source_method_details),
+ target=JMethodDetail(method_declaration=target_method_details.declaration,
+ klass=target_class_name,
+ method=target_method_details),
+ type='CALL_DEP',
+ weight='1')
+ if call_edge not in cg:
+ cg.append(call_edge)
+ return cg
+
+ def __raw_call_graph_using_symbol_table(self,
+ qualified_class_name: str,
+ method_signature: str,
+ cg=None) -> list[JGraphEdgesST]:
+ """
+ Generates call graph using symbol table information
+ Args:
+ qualified_class_name: qualified class name
+ method_signature: source method signature
+ cg: call graph
+
+ Returns:
+ list[JGraphEdgesST]: list of call edges
+ """
+ if cg is None:
+ cg = []
+ source_method_details = self.get_method(qualified_class_name=qualified_class_name,
+ method_signature=method_signature)
+ # If the provided classname and method signature combination do not exist
+ if source_method_details is None:
+ return cg
+ for call_site in source_method_details.call_sites:
+ target_method_details = None
+ target_class = ''
+ callee_signature = ''
+ if call_site.callee_signature != '':
+ # Currently the callee signature returns the fully qualified type, whereas
+ # the key for JCallable does not. The below logic converts the fully qualified signature
+ # to the desider format. Only limitation is the nested generic type.
+ pattern = r'\b(?:[a-zA-Z_][\w\.]*\.)+([a-zA-Z_][\w]*)\b|<[^>]*>'
+
+ # Find the part within the parentheses
+ start = call_site.callee_signature.find('(') + 1
+ end = call_site.callee_signature.rfind(')')
+
+ # Extract the elements inside the parentheses
+ elements = call_site.callee_signature[start:end].split(',')
+
+ # Apply the regex to each element
+ simplified_elements = [re.sub(pattern, r'\1', element.strip()) for element in elements]
+
+ # Reconstruct the string with simplified elements
+ callee_signature = f"{call_site.callee_signature[:start]}{', '.join(simplified_elements)}{call_site.callee_signature[end:]}"
+
+ if call_site.receiver_type != "":
+ # call to any class
+ if self.get_class(qualified_class_name=call_site.receiver_type):
+ tmd = self.get_method(method_signature=callee_signature,
+ qualified_class_name=call_site.receiver_type)
+ if tmd is not None:
+ target_method_details = tmd
+ target_class = call_site.receiver_type
+ else:
+ # check if any method exists with the signature in the class even if the receiver type is blank
+ tmd = self.get_method(method_signature=callee_signature,
+ qualified_class_name=qualified_class_name)
+ if tmd is not None:
+ target_method_details = tmd
+ target_class = qualified_class_name
+
+ if target_class != '' and target_method_details is not None:
+ source: JMethodDetail
+ target: JMethodDetail
+ type: str
+ weight: str
+ call_edge = JGraphEdgesST(
+ source=JMethodDetail(method_declaration=source_method_details.declaration,
+ klass=qualified_class_name,
+ method=source_method_details),
+ target=JMethodDetail(method_declaration=target_method_details.declaration,
+ klass=target_class,
+ method=target_method_details),
+ type='CALL_DEP',
+ weight='1')
+ if call_edge not in cg:
+ cg.append(call_edge)
+ cg = self.__raw_call_graph_using_symbol_table(qualified_class_name=target_class,
+ method_signature=target_method_details.signature,
+ cg=cg)
+ return cg
+
+ def get_class_call_graph(self, qualified_class_name: str, method_name: str | None = None) -> List[
+ Tuple[JMethodDetail, JMethodDetail]]:
"""
A call graph for a given class and (optionally) filtered by a given method.
@@ -753,7 +1004,8 @@ def get_all_entry_point_methods(self) -> Dict[str, Dict[str, JCallable]]:
class_method_dict = {}
class_dict = self.get_all_classes()
for k, v in class_dict.items():
- entry_point_methods = {method_name: callable_decl for (method_name, callable_decl) in v.callable_declarations.items() if callable_decl.is_entry_point is True}
+ entry_point_methods = {method_name: callable_decl for (method_name, callable_decl) in
+ v.callable_declarations.items() if callable_decl.is_entry_point is True}
class_method_dict[k] = entry_point_methods
return class_method_dict
diff --git a/cldk/analysis/java/java.py b/cldk/analysis/java/java.py
index 2c7f4f98..0b02684f 100644
--- a/cldk/analysis/java/java.py
+++ b/cldk/analysis/java/java.py
@@ -3,7 +3,7 @@
from typing import Dict, List, Tuple, Set
from networkx import DiGraph
-from cldk.analysis import SymbolTable, CallGraph
+from cldk.analysis import SymbolTable, CallGraph, AnalysisLevel
from cldk.models.java import JCallable
from cldk.models.java import JApplication
from cldk.models.java.models import JCompilationUnit, JMethodDetail, JType, JField
@@ -157,7 +157,8 @@ def get_call_graph_json(self) -> str:
raise NotImplementedError("Producing a call graph over a single file is not implemented yet.")
return self.backend.get_call_graph_json()
- def get_callers(self, target_class_name: str, target_method_declaration: str):
+ def get_callers(self, target_class_name: str, target_method_declaration: str,
+ using_symbol_table: bool = False) -> Dict:
"""
Get all the caller details for a given java method.
@@ -168,7 +169,7 @@ def get_callers(self, target_class_name: str, target_method_declaration: str):
"""
if self.source_code:
raise NotImplementedError("Generating all callers over a single file is not implemented yet.")
- return self.backend.get_all_callers(target_class_name, target_method_declaration)
+ return self.backend.get_all_callers(target_class_name, target_method_declaration, using_symbol_table)
def get_callees(self, source_class_name: str, source_method_declaration: str):
"""
@@ -437,25 +438,50 @@ def get_implemented_interfaces(self, qualified_class_name) -> List[str]:
raise NotImplementedError(f"Support for this functionality has not been implemented yet.")
return self.backend.get_implemented_interfaces(qualified_class_name)
- def get_class_call_graph(self, qualified_class_name: str, method_name: str | None = None) -> (List)[Tuple[JMethodDetail, JMethodDetail]]:
+ def __get_class_call_graph_using_symbol_table(self, qualified_class_name: str, method_signature: str | None = None) -> (List)[Tuple[JMethodDetail, JMethodDetail]]:
+ """
+ A call graph using symbol table for a given class and a given method.
+ Args:
+ qualified_class_name:
+ method_signature:
+
+ Returns:
+ List[Tuple[JMethodDetail, JMethodDetail]]
+ An edge list of the call graph for the given class and method.
+ """
+ if self.analysis_backend in [AnalysisEngine.CODEQL, AnalysisEngine.TREESITTER]:
+ raise NotImplementedError(f"Support for this functionality has not been implemented yet.")
+ return self.backend.get_class_call_graph_using_symbol_table(qualified_class_name, method_signature)
+
+ def get_class_call_graph(self, qualified_class_name: str, method_signature: str | None = None,
+ using_symbol_table: bool = False) -> List[Tuple[JMethodDetail, JMethodDetail]]:
"""
A call graph for a given class and (optionally) a given method.
Parameters
----------
+ using_symbol_table: bool
+ Generate call graph using symbol table
qualified_class_name : str
The qualified name of the class.
method_name : str, optional
- The name of the method in the class.
+ The signature of the method in the class.
Returns
-------
List[Tuple[JMethodDetail, JMethodDetail]]
An edge list of the call graph for the given class and method.
+
+ Args:
+ using_symbol_table:
+ using_symbol_table:
"""
+ if using_symbol_table:
+ return self.__get_class_call_graph_using_symbol_table(qualified_class_name=qualified_class_name,
+ method_signature=method_signature)
if self.analysis_backend in [AnalysisEngine.CODEQL, AnalysisEngine.TREESITTER]:
raise NotImplementedError(f"Support for this functionality has not been implemented yet.")
- return self.backend.get_class_call_graph(qualified_class_name, method_name)
+ return self.backend.get_class_call_graph(qualified_class_name, method_signature)
def get_entry_point_classes(self) -> Dict[str, JType]:
"""
diff --git a/cldk/core.py b/cldk/core.py
index e7aea421..b8df8f27 100644
--- a/cldk/core.py
+++ b/cldk/core.py
@@ -37,7 +37,7 @@ def analysis(
analysis_backend: str | None = "codeanalyzer",
analysis_level: str = "symbol_table",
analysis_backend_path: str | None = None,
- analysis_json_path: str | Path | None = None,
+ analysis_json_path: str | Path = '.',
use_graalvm_binary: bool = False,
) -> JavaAnalysis:
"""
@@ -114,7 +114,7 @@ def treesitter_parser(self):
else:
raise NotImplementedError(f"Treesitter parser for {self.language} is not implemented yet.")
- def tree_sitter_utils(self, source_code: str):
+ def tree_sitter_utils(self, source_code: str) -> [TreesitterSanitizer| NotImplementedError]:
"""
Parse the project using treesitter.
diff --git a/cldk/models/java/models.py b/cldk/models/java/models.py
index f0b84b9b..73b98ad7 100644
--- a/cldk/models/java/models.py
+++ b/cldk/models/java/models.py
@@ -103,10 +103,10 @@ class JCallSite(BaseModel):
return_type: str = ""
callee_signature: str = ""
is_static_call: bool
- is_private: bool
- is_public: bool
- is_protected: bool
- is_unspecified: bool
+ is_private: bool
+ is_public: bool
+ is_protected: bool
+ is_unspecified: bool
is_constructor_call: bool
start_line: int
start_column: int
@@ -356,6 +356,15 @@ def __hash__(self):
return hash(tuple(self))
+class JGraphEdgesST(BaseModel):
+ source: JMethodDetail
+ target: JMethodDetail
+ type: str
+ weight: str
+ source_kind: str | None = None
+ destination_kind: str | None = None
+
+
class JGraphEdges(BaseModel):
source: JMethodDetail
target: JMethodDetail
diff --git a/docs/examples/java/code_summarization.ipynb b/docs/examples/java/code_summarization.ipynb
new file mode 100644
index 00000000..4ec38555
--- /dev/null
+++ b/docs/examples/java/code_summarization.ipynb
@@ -0,0 +1,493 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "!pip install ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "eebee2515df69b96"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Using CLDK to explain Java methods\n",
+ "\n",
+ "In this tutorial, we will use CLDK to explain or generate code summary for all the methods in a Java Application.\n",
+ "\n",
+ "By the end of this tutorial, you will have code summary for all the methods in a Java application. You'll be able to explore some of the benefits of using CLDK to perform fast and easy program analysis and build a LLM-based code summary generation.\n",
+ "\n",
+ "You will learn how to do the following:\n",
+ "\n",
+ "
\n",
+ "- Create a new instance of the CLDK class.\n",
+ "
- Create an analysis object over the Java application.\n",
+ "
- Iterate over all the files in the project.\n",
+ "
- Iterate over all the classes in the file.\n",
+ "
- Iterate over all the methods in the class.\n",
+ "
- Get the code body of the method.\n",
+ "
- Initialize the treesitter utils for the class file content.\n",
+ "
- Sanitize the class for analysis.\n",
+ "
\n",
+ "Next, we will write a couple of helper methods to:\n",
+ "\n",
+ "\n",
+ "- Format the instruction for the given focal method and class.\n",
+ "
- Prompts the local model on Ollama.\n",
+ "
- Prints the instruction and LLM output.\n",
+ "
"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "59d05bbe28e62687"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Prequisites\n",
+ "\n",
+ "Before we get started, let's make sure you have the following installed:\n",
+ "\n",
+ "\n",
+ "- Python 3.11 or later\n",
+ "
- Ollama 0.3.4 or later\n",
+ "
\n",
+ "We will use ollama to spin up a local granite model that will act as our LLM for this turorial."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "92896c8ce12b0e9e"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Prerequisite 1: Install ollama\n",
+ "\n",
+ "If you don't have ollama installed, please download and install it from here: [Ollama](https://ollama.com/download).\n",
+ "Once you have ollama, start the server and make sure it is running.\n",
+ "If you're on MacOS, Linux, or WSL, you can check to make sure the server is running by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "bfeb1e1227191e3b"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "systemctl status ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "c53214c8106642ce"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "If not, you may have to start the server manually. You can do this by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "34a7b1802be15a3f"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "systemctl start ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "f60e2d9ec12f0bf6"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Once ollama is up and running, you can download the latest version of the Granite 8b Instruct model by running the following command:\n",
+ "\n",
+ "There are other granite versions available, but for this tutorial, we will use the Granite 8b Instruct model. You if prefer to use a different version, you can replace `8b-instruct` with any of the other [versions](https://ollama.com/library/granite-code/tags)."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "f629a10841aca9e2"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "ollama pull granite-code:8b-instruct"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "6ff900382e86a18e"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Let's make sure the model is downloaded by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "d076e98c390591b5"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "ollama run granite-code:8b-instruct \\\"Write a python function to print 'Hello, World!'"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "7aff854a031589f0"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Prerequisite 3: Install ollama Python SDK"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "531205b489bbec73"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "pip install ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "e2a749932a800c9d"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Prerequisite 4: Install CLDK\n",
+ "CLDK is avaliable on github at github.com/IBM/codellm-devkit.git. You can install it by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "6f42dbd286b3f7a6"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "pip install git+https://github.com/IBM/codellm-devkit.git"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "327e212f20a489d6"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Step 1: Get the sample Java application\n",
+ "For this tutorial, we will use apache commons cli. You can download the source code to a temporary directory by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "dd8ec5b9c837898f"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "wget https://github.com/apache/commons-cli/archive/refs/tags/rel/commons-cli-1.7.0.zip -O /tmp/commons-cli-1.7.0.zip && unzip -o /tmp/commons-cli-1.7.0.zip -d /tmp"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "c196e58b3ce90c34"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The project will now be extracted to `/tmp/commons-cli-rel-commons-cli-1.7.0`. We'll remove these files later, so don't worry about the location."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "44e875e7ce6db504"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Generate code summary\n",
+ "Code summarization or code explanation is a task that converts a code written in a programming language to a natural language. This particular task has several\n",
+ "benefits, such as understanding code without looking at its intrinsic details, documenting code for better maintenance, etc. To do that, one needs to\n",
+ "understand the basic details of code structure works, and use that knowledge to generate the summary using various AI-based approaches. In this particular\n",
+ "example, we will be using Large Language Models (LLM), specifically Granite 8B, an open-source model built by IBM. We will show how easily a developer can use\n",
+ "CLDK to expose various parts of the code by calling various APIs without implementing various time-intensive program analyses from scratch."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "6ad70b81e8957fc0"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Step 1: Add all the neccessary imports"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "15555404790e1411"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "from pathlib import Path\n",
+ "import ollama\n",
+ "from cldk import CLDK\n",
+ "from cldk.analysis import AnalysisLevel"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "8e8e5de7e5c68020"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Step 2: Formulate the LLM prompt. The prompt can be tailored towards various needs. In this case, we show a simple example of generating summary for each\n",
+ "method in a Java class"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "ffc4ee9a6d27acc2"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "def format_inst(code, focal_method, focal_class, language):\n",
+ " \"\"\"\n",
+ " Format the instruction for the given focal method and class.\n",
+ " \"\"\"\n",
+ " inst = f\"Question: Can you write a brief summary for the method `{focal_method}` in the class `{focal_class}` below?\\n\"\n",
+ "\n",
+ " inst += \"\\n\"\n",
+ " inst += f\"```{language}\\n\"\n",
+ " inst += code\n",
+ " inst += \"```\" if code.endswith(\"\\n\") else \"\\n```\"\n",
+ " inst += \"\\n\"\n",
+ " return inst"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "9e23523c71636727"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "a4e9cb4e4f00b25c"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Step 3: Create a function to call LLM. There are various ways to achieve that. However, for illustrative purpose, we use ollama, a library to communicate with models downloaded locally."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "dd8439be222b5caa"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "def prompt_ollama(message: str, model_id: str = \"granite-code:8b-instruct\") -> str:\n",
+ " \"\"\"Prompt local model on Ollama\"\"\"\n",
+ " response_object = ollama.generate(model=model_id, prompt=message)\n",
+ " return response_object[\"response\"]"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "62807e0cbf985ae6"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Step 4: Create an object of CLDK and provide the programming language of the source code."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "1022e86e38e12767"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "# Create a new instance of the CLDK class\n",
+ "cldk = CLDK(language=\"java\")"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "a2c8bbe4e3244f60"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Step 5: CLDK uses different analysis engine--Codeanalyzer (built using WALA and Javaparser), Treesitter, and CodeQL (future). By default, codenanalyzer has\n",
+ "been selected as the default analysis engine. Also, CLDK support different analysis levels--(a) symbol table, (b) call graph, (c) program dependency graph, and\n",
+ "(d) system dependency graph. Analysis engine can be selected using ```AnalysisLevel``` enum. In this example, we will generate summarization of all the methods\n",
+ "of an application. "
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "23dd4a6e5d5cb0c5"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "# Create an analysis object over the java application\n",
+ "analysis = cldk.analysis(project_path=\"/tmp/commons-cli-rel-commons-cli-1.7.0\", analysis_level=AnalysisLevel.symbol_table)"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "fdd09f5e77d4a68a"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Step 6: Iterate over all the class files and create the prompt. In this case, we want to provide a customized Java class in the prompt. For instance,\n",
+ "\n",
+ "```\n",
+ "package com.ibm.org;\n",
+ "import A.B.C.D;\n",
+ "...\n",
+ "public class Foo {\n",
+ " // code comment\n",
+ " public void bar(){ \n",
+ " int a;\n",
+ " a = baz();\n",
+ " // do something\n",
+ " }\n",
+ " private int baz()\n",
+ " {\n",
+ " // do something\n",
+ " }\n",
+ " public String dummy (String a)\n",
+ " {\n",
+ " // do somthing\n",
+ " } \n",
+ "```\n",
+ "Given the above class, let's say we want to generate a summary for the ```bar``` method. To understand what it does, we add the callee of this method in the prompt, which in this case is ```baz```. We also remove imports, comments, etc. All of these are done using a single call to ```sanitize_focal_class``` API. In this process, we also use Treesitter to analyze the code. Once the input code has been sanitized, we call the ```format_inst``` method to create the LLM prompt, which has been passed to ```prompt_ollama``` method to generate the summary using LLM."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "f148325e92781e13"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "# Iterate over all the files in the project\n",
+ "for file_path, class_file in analysis.get_symbol_table().items():\n",
+ " class_file_path = Path(file_path).absolute().resolve()\n",
+ " # Iterate over all the classes in the file\n",
+ " for type_name, type_declaration in class_file.type_declarations.items():\n",
+ " # Iterate over all the methods in the class\n",
+ " for method in type_declaration.callable_declarations.values():\n",
+ " # Get code body of the method\n",
+ " code_body = class_file_path.read_text()\n",
+ " \n",
+ " # Initialize the treesitter utils for the class file content\n",
+ " tree_sitter_utils = cldk.tree_sitter_utils(source_code=code_body)\n",
+ " \n",
+ " # Sanitize the class for analysis\n",
+ " sanitized_class = tree_sitter_utils.sanitize_focal_class(method.declaration)\n",
+ " \n",
+ " # Format the instruction for the given focal method and class\n",
+ " instruction = format_inst(\n",
+ " code=sanitized_class,\n",
+ " focal_method=method.declaration,\n",
+ " focal_class=type_name,\n",
+ " language=\"java\"\n",
+ " )\n",
+ " \n",
+ " # Prompt the local model on Ollama\n",
+ " llm_output = prompt_ollama(\n",
+ " message=instruction,\n",
+ " model_id=\"granite-code:20b-instruct\",\n",
+ " )\n",
+ " \n",
+ " # Print the instruction and LLM output\n",
+ " print(f\"Instruction:\\n{instruction}\")\n",
+ " print(f\"LLM Output:\\n{llm_output}\")"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "462ef7dceae367ad"
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/examples/java/generate_unit_tests.ipynb b/docs/examples/java/generate_unit_tests.ipynb
new file mode 100644
index 00000000..5acd8532
--- /dev/null
+++ b/docs/examples/java/generate_unit_tests.ipynb
@@ -0,0 +1,422 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "!pip install ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "ee51e198aaebcd9b"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Using CLDK to generate JUnit tests\n",
+ "\n",
+ "In this tutorial, we will use CLDK to generate a JUnit test for all the methods in a Java Application.\n",
+ "\n",
+ "By the end of this tutorial, you will have a JUnit test for all the methods in a Java application. You'll be able to explore some of the benefits of using CLDK to perform fast and easy program analysis and build a LLM-based test generator.\n",
+ "\n",
+ "You will learn how to do the following:\n",
+ "\n",
+ "\n",
+ "- Create a new instance of the CLDK class.\n",
+ "
- Create an analysis object over the Java application.\n",
+ "
- Iterate over all the files in the project.\n",
+ "
- Iterate over all the classes in the file.\n",
+ "
- Iterate over all the methods in the class.\n",
+ "
- Get the code body of the method.\n",
+ "
- Initialize the treesitter utils for the class file content.\n",
+ "
- Sanitize the class for analysis.\n",
+ "
\n",
+ "Next, we will write a couple of helper methods to:\n",
+ "\n",
+ "\n",
+ "- Format the instruction for the given focal method and class.\n",
+ "
- Prompts the local model on Ollama.\n",
+ "
- Prints the instruction and LLM output.\n",
+ "
"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "428dbbfa206f5417"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Prequisites\n",
+ "\n",
+ "Before we get started, let's make sure you have the following installed:\n",
+ "\n",
+ "\n",
+ "- Python 3.11 or later\n",
+ "
- Ollama 0.3.4 or later\n",
+ "
\n",
+ "We will use ollama to spin up a local granite model that will act as our LLM for this turorial."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "f619a9379b9dd006"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Prerequisite 1: Install ollama\n",
+ "\n",
+ "If you don't have ollama installed, please download and install it from here: [Ollama](https://ollama.com/download).\n",
+ "Once you have ollama, start the server and make sure it is running.\n",
+ "If you're on MacOS, Linux, or WSL, you can check to make sure the server is running by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "3485879a7733bcba"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "systemctl status ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "2f67be6c8c024e12"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "If not, you may have to start the server manually. You can do this by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "273e60ca598e0a53"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "systemctl start ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "cc6877ce338e9102"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Once ollama is up and running, you can download the latest version of the Granite 8b Instruct model by running the following command:\n",
+ "\n",
+ "There are other granite versions available, but for this tutorial, we will use the Granite 8b Instruct model. You if prefer to use a different version, you can replace `8b-instruct` with any of the other [versions](https://ollama.com/library/granite-code/tags)."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "c024dc7ec2869a72"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "ollama pull granite-code:8b-instruct"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "5ad0e8ac33c7108e"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Let's make sure the model is downloaded by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "14f9946fdc5e2025"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "ollama run granite-code:8b-instruct \\\"Write a python function to print 'Hello, World!'"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "e3410ce4d0afa788"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Prerequisite 3: Install ollama Python SDK"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "d8c0224c3c4ecf4d"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "pip install ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "5539b5251aee5642"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Prerequisite 4: Install CLDK\n",
+ "CLDK is avaliable on github at github.com/IBM/codellm-devkit.git. You can install it by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "cea573e625257581"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "pip install git+https://github.com/IBM/codellm-devkit.git"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "eeb38b312427329d"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Step 1: Get the sample Java application\n",
+ "For this tutorial, we will use apache commons cli. You can download the source code to a temporary directory by running the following command:"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "ca7682c71d844b68"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "wget https://github.com/apache/commons-cli/archive/refs/tags/rel/commons-cli-1.7.0.zip -O /tmp/commons-cli-1.7.0.zip && unzip -o /tmp/commons-cli-1.7.0.zip -d /tmp"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "a4d08ca64b9dbccb"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The project will now be extracted to `/tmp/commons-cli-rel-commons-cli-1.7.0`. We'll remove these files later, so don't worry about the location."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "51d30f3eb726afc0"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Building a JUnit test generator using CLDK and Granite Code Instruct Model\n",
+ "Now that we have all the prerequisites installed, let's start building a JUnit test generator using CLDK and the Granite Code Instruct Model."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "98e69eb0bccedfc9"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Generating unit tests for code is a very tedious task and often takes a significant effort from the developers to write good test cases. There are various tools that are available for automated test generation, such as EvoSuite, which uses evolutionary algorithms to generate test cases. However, the test cases that are being generated are not natural and often developers do not prefer to add them to their test suite. Whereas Large Language Models (LLM) being trained with developer-written code it has a better affinity towards generating more natural code--more readable, maintainable code. In this excercise, we will show we can leverage LLMs to generate test cases with the help of CLDK. \n",
+ "\n",
+ "For simplicity, we will cover certain aspects of test generation and provide some context information to LLM for better quality of test cases. In this exercise, we will generate a unit test for a non-private method from a Java class and provide the focal method body and the signature of all the constructors of the class so that LLM can understand how to create an object of the focal class during the setup phase of the tests. Also, we will ask LLMs to generate ```N``` number of test cases, where ```N``` is the cyclomatic complexity of the focal method. The intuition is that one test may not be sufficient for covering fairly complex methods, and a cyclomatic complexity score can provide some guidance towards that. \n",
+ "\n",
+ "(Step 1) First, we will import all the necessary libraries"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "5856baff4aa64ed7"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "import ollama\n",
+ "from cldk import CLDK\n",
+ "from cldk.analysis import AnalysisLevel"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "b3d2498ae092fcc"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "(Step 2) Second, we will form the prompt for the model, which will include all the constructor signarures, and the body of the focal method."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "67eb24b29826d730"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "def format_inst(focal_method_body, focal_method, focal_class, constructor_signatures, cyclomatic_complexity, language):\n",
+ " \"\"\"\n",
+ " Format the instruction for the given focal method and class.\n",
+ " \"\"\"\n",
+ " inst = f\"Question: Can you generate {cyclomatic_complexity} unit tests for the method `{focal_method}` in the class `{focal_class}` below?\\n\"\n",
+ "\n",
+ " inst += \"\\n\"\n",
+ " inst += f\"```{language}\\n\"\n",
+ " inst += \"```\\n\"\n",
+ " inst += \"public class {focal_class} {\"\n",
+ " inst += f\"<|constructors|>\\n{constructor_signatures}\\n<|constructors|>\\n\"\n",
+ " inst += f\"<|focal method|>\\n {focal_method_body} \\n <|focal method|>\\n\" \n",
+ " inst += \"}\"\n",
+ " inst += \"```\\n\"\n",
+ " inst += \"Answer:\\n\"\n",
+ " return inst"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "d7bc9bbaa917df24"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "(Step 3) Third, use ollama to call LLM (in case Granite 8b)."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "ae9ceb150f5efa92"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "def prompt_ollama(message: str, model_id: str = \"granite-code:20b-instruct\") -> str:\n",
+ " \"\"\"Prompt local model on Ollama\"\"\"\n",
+ " response_object = ollama.generate(model=model_id, prompt=message)\n",
+ " return response_object[\"response\"]"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "52634feae7374599"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "(Step 4) Fourth, collect all the information needed for each method. In this process, we go through all the classes in the application, and then for each class, we collect the signature of all the constructors. If there is no constructor present, we add the signature of the default constructor. Then, we go through all the non-private methods of the class and formulate the prompt using the constructor and the method information. Finally, we use the prompt to call LLM and get the final output."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "308c3325116b87d4"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "# Create a new instance of the CLDK class\n",
+ "cldk = CLDK(language=\"java\")\n",
+ "# Create an analysis object over the java application. Provide the application path.\n",
+ "analysis = cldk.analysis(project_path=\"/tmp/commons-cli-rel-commons-cli-1.7.0\", analysis_level=AnalysisLevel.symbol_table)\n",
+ "# Go through all the classes in the application\n",
+ "for class_name in analysis.get_classes():\n",
+ " class_details = analysis.get_class(qualified_class_name=class_name)\n",
+ " # Generate test cases for non-interface and non-abstract classes\n",
+ " if not class_details.is_interface and 'abstract' not in class_details.modifiers:\n",
+ " # Get all constructor signatures\n",
+ " constructor_signatures = ''\n",
+ " for method in analysis.get_methods_in_class(qualified_class_name=class_name):\n",
+ " method_details = analysis.get_method(qualified_class_name=class_name, qualified_method_name=method)\n",
+ " if method_details.is_constructor:\n",
+ " constructor_signatures += method_details.signature + '\\n'\n",
+ " # If no constructor present, then add the signature of the default constructor\n",
+ " if constructor_signatures=='':\n",
+ " constructor_signatures = f'public {class_name} ()'\n",
+ " # Go through all the methods in the class\n",
+ " for method in analysis.get_methods_in_class(qualified_class_name=class_name):\n",
+ " # Get the method details\n",
+ " method_details = analysis.get_method(qualified_class_name=class_name, qualified_method_name=method)\n",
+ " # Generate test cases for non-private methods\n",
+ " if 'private' not in method_details.modifiers and not method_details.is_constructor:\n",
+ " # Gather all the information needed for the prompt, which are focal method body, focal method name, focal class name, constructor signature, and cyclomatic complexity\n",
+ " prompt = format_inst(focal_method_body=method_details.code,\n",
+ " focal_method=method,\n",
+ " focal_class=class_name,\n",
+ " constructor_signatures=constructor_signatures,\n",
+ " cyclomatic_complexity=method_details.cyclomatic_complexity)\n",
+ " # Prompt the local model on Ollama\n",
+ " llm_output = prompt_ollama(\n",
+ " message=prompt,\n",
+ " model_id=\"granite-code:20b-instruct\",\n",
+ " )\n",
+ " \n",
+ " # Print the instruction and LLM output\n",
+ " print(f\"Instruction:\\n{prompt}\")\n",
+ " print(f\"LLM Output:\\n{llm_output}\")"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "65c9558e4de65a52"
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/examples/java/validating_code_translation.ipynb b/docs/examples/java/validating_code_translation.ipynb
new file mode 100644
index 00000000..2266cf0e
--- /dev/null
+++ b/docs/examples/java/validating_code_translation.ipynb
@@ -0,0 +1,171 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "!pip install ollama"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "3195a8c0612cb428"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Code translation aims to convert source code from one programming language (PL) to another. Given the promising abilities of large language models (LLMs) in code synthesis, researchers are exploring their potential to automate code translation. In our recent paper [https://dl.acm.org/doi/10.1145/3597503.3639226] published at ICSE'24, we found that LLM-based code translation is very promising. In this example, we will walk through the steps of translating each Java class to Python and checking various properties of translated code, such as the number of methods, number of fields, formal arguments, etc.\n",
+ "\n",
+ "(Step 1) First, we will import all the necessary libraries"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "47af1410ab0a3b4d"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "from cldk.analysis.python.treesitter import PythonSitter\n",
+ "from cldk.analysis.java.treesitter import JavaSitter\n",
+ "import ollama\n",
+ "from cldk import CLDK\n",
+ "from cldk.analysis import AnalysisLevel"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "47a78f61a53b2b55"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "(Step 2) Second, we will form the prompt for the model, which will include the body of the Java class after removing all the comments and the import statements."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "c6d2f67e1a17cf1"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "def format_inst(code, focal_class, language):\n",
+ " \"\"\"\n",
+ " Format the instruction for the given focal method and class.\n",
+ " \"\"\"\n",
+ " inst = f\"Question: Can you translate the Java class `{focal_class}` below to Python and generate under code block (```)?\\n\"\n",
+ "\n",
+ " inst += \"\\n\"\n",
+ " inst += f\"```{language}\\n\"\n",
+ " inst += code\n",
+ " inst += \"```\" if code.endswith(\"\\n\") else \"\\n```\"\n",
+ " inst += \"\\n\"\n",
+ " return inst"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "dc1ec56e92e90c15"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "(Step 3) Create a function to call LLM. There are various ways to achieve that. However, for illustrative purpose, we use ollama, a library to communicate with models downloaded locally."
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "1239041c3315e5e5"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "def prompt_ollama(message: str, model_id: str = \"granite-code:8b-instruct\") -> str:\n",
+ " \"\"\"Prompt local model on Ollama\"\"\"\n",
+ " response_object = ollama.generate(model=model_id, prompt=message)\n",
+ " return response_object[\"response\"]"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "1c86224032a6eb70"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "(Step 4) Translate each class in the application (provide the application path as an environment variable, ```JAVA_APP_PATH```) and check certain properties of the translated code, such as (a) number of translated method, and (b) number of translated fields. "
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "518efea0d8c4d307"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "outputs": [],
+ "source": [
+ "# Create a new instance of the CLDK class\n",
+ "cldk = CLDK(language=\"java\")\n",
+ "# Create an analysis object over the java application. Provide the application path using JAVA_APP_PATH\n",
+ "analysis = cldk.analysis(project_path=\"JAVA_APP_PATH\", analysis_level=AnalysisLevel.symbol_table)\n",
+ "# Go through all the classes in the application\n",
+ "for class_name in analysis.get_classes():\n",
+ " # Get the location of the Java class\n",
+ " class_path = analysis.get_java_file(qualified_class_name=class_name)\n",
+ " # Read the file content\n",
+ " if not class_path:\n",
+ " class_body = ''\n",
+ " with open(class_path, 'r', encoding='utf-8', errors='ignore') as f:\n",
+ " class_body = f.read()\n",
+ " # Sanitize the file content by removing comments.\n",
+ " tree_sitter_utils = cldk.tree_sitter_utils(source_code=class_body)\n",
+ " sanitized_class = JavaSitter.remove_all_comments(source_code=class_body)\n",
+ " translated_code = prompt_ollama(\n",
+ " message=sanitized_class,\n",
+ " model_id=\"granite-code:20b-instruct\")\n",
+ " py_cldk = PythonSitter()\n",
+ " all_methods = py_cldk.get_all_methods(module=translated_code)\n",
+ " all_functions = py_cldk.get_all_functions(module=translated_code)\n",
+ " all_fields = py_cldk.get_all_fields(module=translated_code)\n",
+ " if len(all_methods) + len(all_functions) != len(analysis.get_methods_in_class(qualified_class_name=class_name)):\n",
+ " print(f'Number of translated method not matching in class {class_name}')\n",
+ " if len(all_fields) != len(analysis.get_class(qualified_class_name=class_name).field_declarations):\n",
+ " print(f'Number of translated field not matching in class {class_name}') "
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "fe3be3de6790f7b3"
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/examples/python/code_summarization.ipynb b/docs/examples/python/code_summarization.ipynb
new file mode 100644
index 00000000..29cd7437
--- /dev/null
+++ b/docs/examples/python/code_summarization.ipynb
@@ -0,0 +1,35 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "initial_id",
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/examples/python/generate_unit_tests.ipynb b/docs/examples/python/generate_unit_tests.ipynb
new file mode 100644
index 00000000..29cd7437
--- /dev/null
+++ b/docs/examples/python/generate_unit_tests.ipynb
@@ -0,0 +1,35 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "initial_id",
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/examples/python/validating_code_translation.ipynb b/docs/examples/python/validating_code_translation.ipynb
new file mode 100644
index 00000000..29cd7437
--- /dev/null
+++ b/docs/examples/python/validating_code_translation.ipynb
@@ -0,0 +1,35 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "initial_id",
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/tests/analysis/java/test_java.py b/tests/analysis/java/test_java.py
index 4be98823..898b6c9e 100644
--- a/tests/analysis/java/test_java.py
+++ b/tests/analysis/java/test_java.py
@@ -1,8 +1,68 @@
from typing import List, Tuple
+
+import pytest
+
from cldk import CLDK
+from cldk.analysis import AnalysisLevel
from cldk.models.java.models import JMethodDetail
+import toml
+import shutil
+import pytest
+import zipfile
+from pathlib import Path
+from urllib.request import urlretrieve
+
+
+@pytest.fixture(scope="session", autouse=True)
+def test_fixture(application: str = ''):
+ """
+ Returns the path to the test data directory.
+
+ Yields:
+ Path : The path to the test data directory.
+ """
+ # ----------------------------------[ SETUP ]----------------------------------
+ # Path to your pyproject.toml
+ pyproject_path = Path(__file__).parent.parent.parent.parent / "pyproject.toml"
+
+ # Load the configuration
+ config = toml.load(pyproject_path)
+ # Access the test data path
+ test_data_path = config["tool"]["cldk"]["testing"]["sample-application"]
+ if not Path(__file__).parent.parent.parent.parent.joinpath(test_data_path).exists():
+ Path(test_data_path).mkdir(parents=True)
+ if application == "daytrader":
+ url = "https://github.com/OpenLiberty/sample.daytrader8/archive/refs/tags/v1.2.zip"
+ filename = Path(test_data_path).absolute() / "v1.2.zip"
+ elif application == "CLI" or application == "":
+ url = "https://github.com/apache/commons-cli/archive/refs/tags/commons-cli-1.8.0-RC2.zip"
+ filename = Path(__file__).parent.parent.parent.parent.joinpath(test_data_path).joinpath("commons-cli-1.8.0-RC2.zip")
+ urlretrieve(url, filename)
+
+ # Extract the zip file to the test data path
+ with zipfile.ZipFile(filename, "r") as zip_ref:
+ zip_ref.extractall(Path(__file__).parent.parent.parent.parent.joinpath(test_data_path))
+
+ # Remove the zip file
+ filename.unlink()
+ # --------------------------------------------------------------------------------
+ if application == "daytrader":
+ # Daytrader8 sample application path
+ yield Path(Path(__file__).parent.parent.parent.parent.joinpath(test_data_path)) / "sample.daytrader8-1.2"
+ else:
+ yield Path(Path(__file__).parent.parent.parent.parent.joinpath(test_data_path)) / "commons-cli-commons-cli-1.8.0-RC2"
+
+ # -----------------------------------[ TEARDOWN ]----------------------------------
+ # Remove the daytrader8 sample application that was downloaded for testing
+ for directory in Path(test_data_path).iterdir():
+ if directory.exists() and directory.is_dir():
+ shutil.rmtree(directory)
+ # ---------------------------------------------------------------------------------
+
+
+@pytest.mark.parametrize('test_fixture', ['daytrader'], indirect=['test_fixture'])
def test_get_class_call_graph(test_fixture):
# Initialize the CLDK object with the project directory, language, and analysis_backend.
cldk = CLDK(language="java")
@@ -10,12 +70,33 @@ def test_get_class_call_graph(test_fixture):
analysis = cldk.analysis(
project_path=test_fixture,
analysis_backend="codeanalyzer",
- analysis_json_path="/tmp",
+ analysis_json_path="../../../tests/resources/java/analysis_db",
eager=True,
- analysis_level='call-graph'
+ analysis_level=AnalysisLevel.call_graph
)
class_call_graph: List[Tuple[JMethodDetail, JMethodDetail]] = analysis.get_class_call_graph(
qualified_class_name="com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils"
)
assert class_call_graph is not None
+
+
+@pytest.mark.parametrize('test_fixture', ['CLI'], indirect=['test_fixture'])
+def test_get_class_call_graph_using_symbol_table(test_fixture):
+ # Initialize the CLDK object with the project directory, language, and analysis_backend.
+ cldk = CLDK(language="java")
+
+ analysis = cldk.analysis(
+ project_path=test_fixture,
+ analysis_backend="codeanalyzer",
+ analysis_json_path="../../../tests/resources/java/analysis_db",
+ eager=False,
+ analysis_level=AnalysisLevel.symbol_table
+ )
+ class_call_graph: List[Tuple[JMethodDetail, JMethodDetail]] = analysis.get_class_call_graph(
+ qualified_class_name="org.apache.commons.cli.DefaultParser",
+ method_signature="handleConcatenatedOptions(String)",
+ using_symbol_table=True
+ )
+
+ assert class_call_graph is not None
diff --git a/tests/conftest.py b/tests/conftest.py
index d5182ed3..bd69ef18 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -26,7 +26,6 @@ def test_fixture():
if not Path(test_data_path).exists():
Path(test_data_path).mkdir(parents=True)
-
url = "https://github.com/OpenLiberty/sample.daytrader8/archive/refs/tags/v1.2.zip"
filename = Path(test_data_path).absolute() / "v1.2.zip"
urlretrieve(url, filename)
@@ -38,7 +37,6 @@ def test_fixture():
# Remove the zip file
filename.unlink()
# --------------------------------------------------------------------------------
-
# Daytrader8 sample application path
yield Path(test_data_path) / "sample.daytrader8-1.2"
diff --git a/tests/resources/java/analysis_db/analysis.json b/tests/resources/java/analysis_db/analysis.json
deleted file mode 100644
index b943c14e..00000000
--- a/tests/resources/java/analysis_db/analysis.json
+++ /dev/null
@@ -1,111661 +0,0 @@
-{
- "system_dependency_graph": [
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"doDecoding(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void doDecoding(String jsonText)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"jsonText\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n String keyName = null;\\\\n try {\\\\n // JSON parse\\\\n JsonParser parser = Json.createParser(new StringReader(jsonText));\\\\n while (parser.hasNext()) {\\\\n JsonParser.Event event = parser.next();\\\\n switch(event) {\\\\n case KEY_NAME:\\\\n keyName = parser.getString();\\\\n break;\\\\n case VALUE_STRING:\\\\n if (keyName != null && keyName.equals(\\\\\\\"action\\\\\\\")) {\\\\n decodedAction = parser.getString();\\\\n }\\\\n break;\\\\n default:\\\\n break;\\\\n }\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"ActionMessage:doDecoding(\\\\\\\" + jsonText + \\\\\\\") --> failed\\\\\\\", e);\\\\n }\\\\n Log.trace(\\\\\\\"ActionMessage:doDecoding -- decoded action -->\\\\\\\" + decodedAction + \\\\\\\"<--\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 48,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.json.stream.JsonParser\\\",\\n \\\"javax.json.stream.JsonParser.Event\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.ActionMessage.decodedAction\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.json.stream.JsonParser\\\",\\n \\\"javax.json.Json\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"createParser\\\",\\n \\\"declaring_type\\\": \\\"javax.json.Json\\\",\\n \\\"argument_types\\\": [\\n \\\"java.io.StringReader\\\"\\n ],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"javax.json.stream.JsonParser\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 55,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 55,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"javax.json.stream.JsonParser\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getString\\\",\\n \\\"declaring_type\\\": \\\"javax.json.stream.JsonParser\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 59,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 59,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 62,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 62,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getString\\\",\\n \\\"declaring_type\\\": \\\"javax.json.stream.JsonParser\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 71,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 71,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 75,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 75,\\n \\\"end_column\\\": 87\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"keyName\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 50,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 50,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"name\\\": \\\"parser\\\",\\n \\\"type\\\": \\\"javax.json.stream.JsonParser\\\",\\n \\\"initializer\\\": \\\"Json.createParser(new StringReader(jsonText))\\\",\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"name\\\": \\\"event\\\",\\n \\\"type\\\": \\\"javax.json.stream.JsonParser.Event\\\",\\n \\\"initializer\\\": \\\"parser.next()\\\",\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 46\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.web.websocket.ActionMessage\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.FINE, message + \\\\\\\" threadID=\\\\\\\" + Thread.currentThread());\\\\n}\\\",\\n \\\"start_line\\\": 75,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Thread\\\",\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentThread\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Thread\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 71\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"ping(JsonMessage)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@OnMessage\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.io.IOException\\\"\\n ],\\n \\\"declaration\\\": \\\"public void ping(JsonMessage message) throws IOException\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n receivedHitCount++;\\\\n JsonMessage response = new JsonMessage();\\\\n response.setKey(\\\\\\\"receivedHitCount\\\\\\\");\\\\n response.setValue(receivedHitCount.toString());\\\\n currentSession.getAsyncRemote().sendObject(response);\\\\n}\\\",\\n \\\"start_line\\\": 97,\\n \\\"end_line\\\": 104,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.prims.PingWebSocketJson.currentSession\\\",\\n \\\"com.ibm.websphere.samples.daytrader.web.prims.PingWebSocketJson.receivedHitCount\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"javax.websocket.RemoteEndpoint.Async\\\",\\n \\\"javax.websocket.Session\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setKey\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 101,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 101,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"setValue\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"sendObject\\\",\\n \\\"declaring_type\\\": \\\"javax.websocket.RemoteEndpoint.Async\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\"\\n ],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"getAsyncRemote\\\",\\n \\\"declaring_type\\\": \\\"javax.websocket.Session\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 39\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"response\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"initializer\\\": \\\"new JsonMessage()\\\",\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 48\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.web.prims.PingWebSocketJson\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"setKey(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void setKey(String key)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"key\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n this.key = key;\\\\n}\\\",\\n \\\"start_line\\\": 27,\\n \\\"end_line\\\": 29,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage.key\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"ping(JsonMessage)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@OnMessage\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.io.IOException\\\"\\n ],\\n \\\"declaration\\\": \\\"public void ping(JsonMessage message) throws IOException\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n receivedHitCount++;\\\\n JsonMessage response = new JsonMessage();\\\\n response.setKey(\\\\\\\"receivedHitCount\\\\\\\");\\\\n response.setValue(receivedHitCount.toString());\\\\n currentSession.getAsyncRemote().sendObject(response);\\\\n}\\\",\\n \\\"start_line\\\": 97,\\n \\\"end_line\\\": 104,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.prims.PingWebSocketJson.currentSession\\\",\\n \\\"com.ibm.websphere.samples.daytrader.web.prims.PingWebSocketJson.receivedHitCount\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"javax.websocket.RemoteEndpoint.Async\\\",\\n \\\"javax.websocket.Session\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setKey\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 101,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 101,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"setValue\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"sendObject\\\",\\n \\\"declaring_type\\\": \\\"javax.websocket.RemoteEndpoint.Async\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\"\\n ],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"getAsyncRemote\\\",\\n \\\"declaring_type\\\": \\\"javax.websocket.Session\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 39\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"response\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\\\",\\n \\\"initializer\\\": \\\"new JsonMessage()\\\",\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 48\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.web.prims.PingWebSocketJson\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"setValue(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void setValue(String value)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"value\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n this.value = value;\\\\n}\\\",\\n \\\"start_line\\\": 35,\\n \\\"end_line\\\": 37,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage.value\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.web.websocket.JsonMessage\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static synchronized MDBStats getInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n if (mdbStats == null) {\\\\n mdbStats = new MDBStats();\\\\n }\\\\n return mdbStats;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 38,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats.mdbStats\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"MDBStats()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"private MDBStats()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n}\\\",\\n \\\"start_line\\\": 30,\\n \\\"end_line\\\": 31,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"recreateDBTables(Object[], java.io.PrintWriter)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public boolean recreateDBTables(Object[] sqlBuffer, java.io.PrintWriter out) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Object[]\\\",\\n \\\"name\\\": \\\"sqlBuffer\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"name\\\": \\\"out\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n // Clear MDB Statistics\\\\n MDBStats.getInstance().reset();\\\\n Connection conn = null;\\\\n boolean success = false;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:recreateDBTables\\\\\\\");\\\\n conn = getConn();\\\\n Statement stmt = conn.createStatement();\\\\n int bufferLength = sqlBuffer.length;\\\\n for (int i = 0; i < bufferLength; i++) {\\\\n try {\\\\n stmt.executeUpdate((String) sqlBuffer[i]);\\\\n // commit(conn);\\\\n } catch (SQLException ex) {\\\\n // Ignore DROP statements as tables won't always exist.\\\\n if (((String) sqlBuffer[i]).indexOf(\\\\\\\"DROP \\\\\\\") < 0) {\\\\n Log.error(\\\\\\\"TradeDirect:recreateDBTables SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i], ex);\\\\n out.println(\\\\\\\"
SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i] + \\\\\\\" . Check log for details.\\\\\\\");\\\\n }\\\\n }\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n success = true;\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeDirect:recreateDBTables() -- Error dropping and recreating the database tables\\\\\\\");\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return success;\\\\n}\\\",\\n \\\"start_line\\\": 1598,\\n \\\"end_line\\\": 1632,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.Statement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"length\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"java.io.PrintWriter\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.Statement\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"reset\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1600,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1600,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1600,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1600,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1606,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1606,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1608,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1608,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"createStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1609,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 1609,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1613,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1613,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"indexOf\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1617,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1617,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.sql.SQLException\\\"\\n ],\\n \\\"start_line\\\": 1618,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1618,\\n \\\"end_column\\\": 129\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1619,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1619,\\n \\\"end_column\\\": 144\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1623,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1623,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1624,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1624,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1627,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1627,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1629,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1629,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1602,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1602,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"success\\\",\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"initializer\\\": \\\"false\\\",\\n \\\"start_line\\\": 1603,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1603,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.Statement\\\",\\n \\\"initializer\\\": \\\"conn.createStatement()\\\",\\n \\\"start_line\\\": 1609,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 1609,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"bufferLength\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"sqlBuffer.length\\\",\\n \\\"start_line\\\": 1610,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1610,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"name\\\": \\\"i\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"0\\\",\\n \\\"start_line\\\": 1611,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1611,\\n \\\"end_column\\\": 20\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"reset()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public synchronized void reset()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n clear();\\\\n}\\\",\\n \\\"start_line\\\": 64,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"clear\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 65,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 65,\\n \\\"end_column\\\": 15\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"resetTrade(boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"deleteAll\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n // Clear MDB Statistics\\\\n MDBStats.getInstance().reset();\\\\n // Reset Trade\\\\n RunStatsDataBean runStatsData = new RunStatsDataBean();\\\\n Connection conn = null;\\\\n try {\\\\n conn = datasource.getConnection();\\\\n conn.setAutoCommit(false);\\\\n PreparedStatement stmt = null;\\\\n ResultSet rs = null;\\\\n if (deleteAll) {\\\\n try {\\\\n stmt = getStatement(conn, \\\\\\\"delete from quoteejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountprofileejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from holdingejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n // FUTURE: - DuplicateKeyException - For now, don't start at\\\\n // zero as KeySequenceDirect and KeySequenceBean will still\\\\n // give out\\\\n // the cached Block and then notice this change. Better\\\\n // solution is\\\\n // to signal both classes to drop their cached blocks\\\\n // stmt = getStatement(conn, \\\\\\\"delete from keygenejb\\\\\\\");\\\\n // stmt.executeUpdate();\\\\n // stmt.close();\\\\n conn.commit();\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeDirect:resetTrade(deleteAll) -- Error deleting Trade users and stock from the Trade database\\\\\\\");\\\\n }\\\\n return runStatsData;\\\\n }\\\\n stmt = getStatement(conn, \\\\\\\"delete from holdingejb where holdingejb.account_accountid is null\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n // Count and Delete newly registered users (users w/ id that start\\\\n // \\\\\\\"ru:%\\\\\\\":\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountprofileejb where userid like 'ru:%'\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb where account_accountid in (select accountid from accountejb a where a.profile_userid like 'ru:%')\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from holdingejb where account_accountid in (select accountid from accountejb a where a.profile_userid like 'ru:%')\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountejb where profile_userid like 'ru:%'\\\\\\\");\\\\n int newUserCount = stmt.executeUpdate();\\\\n runStatsData.setNewUserCount(newUserCount);\\\\n stmt.close();\\\\n // Count of trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(accountid) as \\\\\\\\\\\\\\\"tradeUserCount\\\\\\\\\\\\\\\" from accountejb a where a.profile_userid like 'uid:%'\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int tradeUserCount = rs.getInt(\\\\\\\"tradeUserCount\\\\\\\");\\\\n runStatsData.setTradeUserCount(tradeUserCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Count of trade stocks\\\\n stmt = getStatement(conn, \\\\\\\"select count(symbol) as \\\\\\\\\\\\\\\"tradeStockCount\\\\\\\\\\\\\\\" from quoteejb a where a.symbol like 's:%'\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int tradeStockCount = rs.getInt(\\\\\\\"tradeStockCount\\\\\\\");\\\\n runStatsData.setTradeStockCount(tradeStockCount);\\\\n stmt.close();\\\\n // Count of trade users login, logout\\\\n stmt = getStatement(conn, \\\\\\\"select sum(loginCount) as \\\\\\\\\\\\\\\"sumLoginCount\\\\\\\\\\\\\\\", sum(logoutCount) as \\\\\\\\\\\\\\\"sumLogoutCount\\\\\\\\\\\\\\\" from accountejb a where a.profile_userID like 'uid:%'\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int sumLoginCount = rs.getInt(\\\\\\\"sumLoginCount\\\\\\\");\\\\n int sumLogoutCount = rs.getInt(\\\\\\\"sumLogoutCount\\\\\\\");\\\\n runStatsData.setSumLoginCount(sumLoginCount);\\\\n runStatsData.setSumLogoutCount(sumLogoutCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Update logoutcount and loginCount back to zero\\\\n stmt = getStatement(conn, \\\\\\\"update accountejb set logoutCount=0,loginCount=0 where profile_userID like 'uid:%'\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n // count holdings for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(holdingid) as \\\\\\\\\\\\\\\"holdingCount\\\\\\\\\\\\\\\" from holdingejb h where h.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int holdingCount = rs.getInt(\\\\\\\"holdingCount\\\\\\\");\\\\n runStatsData.setHoldingCount(holdingCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count orders for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) as \\\\\\\\\\\\\\\"orderCount\\\\\\\\\\\\\\\" from orderejb o where o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int orderCount = rs.getInt(\\\\\\\"orderCount\\\\\\\");\\\\n runStatsData.setOrderCount(orderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count orders by type for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) \\\\\\\\\\\\\\\"buyOrderCount\\\\\\\\\\\\\\\"from orderejb o where (o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')) AND \\\\\\\" + \\\\\\\" (o.orderType='buy')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int buyOrderCount = rs.getInt(\\\\\\\"buyOrderCount\\\\\\\");\\\\n runStatsData.setBuyOrderCount(buyOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count orders by type for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) \\\\\\\\\\\\\\\"sellOrderCount\\\\\\\\\\\\\\\"from orderejb o where (o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')) AND \\\\\\\" + \\\\\\\" (o.orderType='sell')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int sellOrderCount = rs.getInt(\\\\\\\"sellOrderCount\\\\\\\");\\\\n runStatsData.setSellOrderCount(sellOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Delete cancelled orders\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb where orderStatus='cancelled'\\\\\\\");\\\\n int cancelledOrderCount = stmt.executeUpdate();\\\\n runStatsData.setCancelledOrderCount(cancelledOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count open orders by type for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) \\\\\\\\\\\\\\\"openOrderCount\\\\\\\\\\\\\\\"from orderejb o where (o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')) AND \\\\\\\" + \\\\\\\" (o.orderStatus='open')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int openOrderCount = rs.getInt(\\\\\\\"openOrderCount\\\\\\\");\\\\n runStatsData.setOpenOrderCount(openOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Delete orders for holding which have been purchased and sold\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb where holding_holdingid is null\\\\\\\");\\\\n int deletedOrderCount = stmt.executeUpdate();\\\\n runStatsData.setDeletedOrderCount(deletedOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n conn.commit();\\\\n System.out.println(\\\\\\\"TradeDirect:reset Run stats data\\\\\\\\n\\\\\\\\n\\\\\\\" + runStatsData);\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"Failed to reset Trade\\\\\\\");\\\\n conn.rollback();\\\\n throw e;\\\\n } finally {\\\\n conn.close();\\\\n }\\\\n return runStatsData;\\\\n}\\\",\\n \\\"start_line\\\": 245,\\n \\\"end_line\\\": 432,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils.datasource\\\",\\n \\\"java.lang.System.out\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"java.io.PrintStream\\\",\\n \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"javax.sql.DataSource\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"reset\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"getConnection\\\",\\n \\\"declaring_type\\\": \\\"javax.sql.DataSource\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 254,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 254,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setAutoCommit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 255,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 255,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 261,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 261,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 262,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 262,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 263,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 263,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 264,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 264,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 265,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 265,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 267,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 267,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 268,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 268,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 269,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 269,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 270,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 270,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 271,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 271,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 272,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 272,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 275,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 275,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 285,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 285,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 287,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 287,\\n \\\"end_column\\\": 123\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 292,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 292,\\n \\\"end_column\\\": 100\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 293,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 293,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 294,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 294,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 298,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 298,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 299,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 299,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 300,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 300,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 154\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 303,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 303,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 304,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 304,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 306,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 307,\\n \\\"end_column\\\": 134\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 308,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 308,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 309,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 309,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 311,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 311,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 312,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 312,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"setNewUserCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 313,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 313,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 314,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 314,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 317,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 317,\\n \\\"end_column\\\": 134\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 318,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 318,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 319,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 319,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 320,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 320,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setTradeUserCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 321,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 321,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 322,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 324,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 324,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 326,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 326,\\n \\\"end_column\\\": 120\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 327,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 327,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 328,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 328,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 329,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 329,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"setTradeStockCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 330,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 330,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 334,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 335,\\n \\\"end_column\\\": 151\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 336,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 336,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 337,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 337,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 338,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 338,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 339,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 339,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setSumLoginCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 340,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 340,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"setSumLogoutCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 341,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 342,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 342,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 344,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 347,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 347,\\n \\\"end_column\\\": 117\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 348,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 348,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 349,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 349,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 352,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 356,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 356,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 357,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 357,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"setHoldingCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 360,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 360,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 363,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 364,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 366,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 366,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 367,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 367,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 368,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 368,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 369,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 369,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 370,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 370,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 371,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 371,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 374,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 375,\\n \\\"end_column\\\": 118\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 378,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 378,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 379,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 379,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setBuyOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 380,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 380,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 382,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 382,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 386,\\n \\\"end_column\\\": 119\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 389,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 389,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setSellOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 391,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 391,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 393,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 393,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 397,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 397,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setCancelledOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 121\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 406,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 406,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 408,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 408,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setOpenOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 409,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 409,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 412,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 412,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 414,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 414,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 415,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 415,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"setDeletedOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 416,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 416,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 417,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 417,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 418,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 418,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 420,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 420,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintStream\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 422,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 422,\\n \\\"end_column\\\": 79\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 424,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 424,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 425,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 425,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 428,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 428,\\n \\\"end_column\\\": 18\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"runStatsData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"initializer\\\": \\\"new RunStatsDataBean()\\\",\\n \\\"start_line\\\": 250,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 250,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 251,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 251,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"name\\\": \\\"newUserCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"stmt.executeUpdate()\\\",\\n \\\"start_line\\\": 312,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 312,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"tradeUserCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"tradeUserCount\\\\\\\")\\\",\\n \\\"start_line\\\": 320,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 320,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"tradeStockCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"tradeStockCount\\\\\\\")\\\",\\n \\\"start_line\\\": 329,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 329,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"name\\\": \\\"sumLoginCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"sumLoginCount\\\\\\\")\\\",\\n \\\"start_line\\\": 338,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 338,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"sumLogoutCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"sumLogoutCount\\\\\\\")\\\",\\n \\\"start_line\\\": 339,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 339,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"holdingCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"holdingCount\\\\\\\")\\\",\\n \\\"start_line\\\": 357,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 357,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"name\\\": \\\"orderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"orderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 368,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 368,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"buyOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"buyOrderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 379,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 379,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"sellOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"sellOrderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"cancelledOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"stmt.executeUpdate()\\\",\\n \\\"start_line\\\": 397,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 397,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"openOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"openOrderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 408,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 408,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"deletedOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"stmt.executeUpdate()\\\",\\n \\\"start_line\\\": 415,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 415,\\n \\\"end_column\\\": 50\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"reset()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public synchronized void reset()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n clear();\\\\n}\\\",\\n \\\"start_line\\\": 64,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"clear\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 65,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 65,\\n \\\"end_column\\\": 15\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"recreateDBTables(Object[], java.io.PrintWriter)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private boolean recreateDBTables(Object[] sqlBuffer, java.io.PrintWriter out) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Object[]\\\",\\n \\\"name\\\": \\\"sqlBuffer\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"name\\\": \\\"out\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n // Clear MDB Statistics\\\\n MDBStats.getInstance().reset();\\\\n Connection conn = null;\\\\n boolean success = false;\\\\n try {\\\\n conn = datasource.getConnection();\\\\n Statement stmt = conn.createStatement();\\\\n int bufferLength = sqlBuffer.length;\\\\n for (int i = 0; i < bufferLength; i++) {\\\\n try {\\\\n stmt.executeUpdate((String) sqlBuffer[i]);\\\\n // commit(conn);\\\\n } catch (SQLException ex) {\\\\n // Ignore DROP statements as tables won't always exist.\\\\n if (((String) sqlBuffer[i]).indexOf(\\\\\\\"DROP \\\\\\\") < 0) {\\\\n Log.error(\\\\\\\"TradeDirect:recreateDBTables SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i], ex);\\\\n out.println(\\\\\\\"
SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i] + \\\\\\\" . Check log for details.\\\\\\\");\\\\n }\\\\n }\\\\n }\\\\n stmt.close();\\\\n conn.commit();\\\\n success = true;\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeDirect:recreateDBTables() -- Error dropping and recreating the database tables\\\\\\\");\\\\n } finally {\\\\n conn.close();\\\\n }\\\\n return success;\\\\n}\\\",\\n \\\"start_line\\\": 211,\\n \\\"end_line\\\": 242,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.Statement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils.datasource\\\",\\n \\\"length\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"java.io.PrintWriter\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"javax.sql.DataSource\\\",\\n \\\"java.sql.Statement\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"reset\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 213,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 213,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 213,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 213,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"getConnection\\\",\\n \\\"declaring_type\\\": \\\"javax.sql.DataSource\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 218,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 218,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"createStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 219,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 219,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 223,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 223,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"indexOf\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 227,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 227,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.sql.SQLException\\\"\\n ],\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 129\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 229,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 229,\\n \\\"end_column\\\": 144\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 233,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 233,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 234,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 234,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 237,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 237,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 239,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 239,\\n \\\"end_column\\\": 18\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 215,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 215,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"success\\\",\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"initializer\\\": \\\"false\\\",\\n \\\"start_line\\\": 216,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 216,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.Statement\\\",\\n \\\"initializer\\\": \\\"conn.createStatement()\\\",\\n \\\"start_line\\\": 219,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 219,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"bufferLength\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"sqlBuffer.length\\\",\\n \\\"start_line\\\": 220,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 220,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"name\\\": \\\"i\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"0\\\",\\n \\\"start_line\\\": 221,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 221,\\n \\\"end_column\\\": 20\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"reset()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public synchronized void reset()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n clear();\\\\n}\\\",\\n \\\"start_line\\\": 64,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"clear\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 65,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 65,\\n \\\"end_column\\\": 15\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static synchronized MDBStats getInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n if (mdbStats == null) {\\\\n mdbStats = new MDBStats();\\\\n }\\\\n return mdbStats;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 38,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats.mdbStats\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"DTStreamer3MDB()\\\",\\n \\\"comment\\\": \\\"/** Creates a new instance of TradeSteamerMDB */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public DTStreamer3MDB()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"DTStreamer3MDB:DTStreamer3MDB()\\\\\\\");\\\\n if (statInterval <= 0) {\\\\n statInterval = 10000;\\\\n }\\\\n mdbStats = MDBStats.getInstance();\\\\n}\\\",\\n \\\"start_line\\\": 56,\\n \\\"end_line\\\": 63,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.mdb.DTStreamer3MDB.mdbStats\\\",\\n \\\"com.ibm.websphere.samples.daytrader.mdb.DTStreamer3MDB.statInterval\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 57,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 57,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 62,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 62,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.mdb.DTStreamer3MDB\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static synchronized MDBStats getInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n if (mdbStats == null) {\\\\n mdbStats = new MDBStats();\\\\n }\\\\n return mdbStats;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 38,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats.mdbStats\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"recreateDBTables(Object[], java.io.PrintWriter)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public boolean recreateDBTables(Object[] sqlBuffer, java.io.PrintWriter out) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Object[]\\\",\\n \\\"name\\\": \\\"sqlBuffer\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"name\\\": \\\"out\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n // Clear MDB Statistics\\\\n MDBStats.getInstance().reset();\\\\n Connection conn = null;\\\\n boolean success = false;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:recreateDBTables\\\\\\\");\\\\n conn = getConn();\\\\n Statement stmt = conn.createStatement();\\\\n int bufferLength = sqlBuffer.length;\\\\n for (int i = 0; i < bufferLength; i++) {\\\\n try {\\\\n stmt.executeUpdate((String) sqlBuffer[i]);\\\\n // commit(conn);\\\\n } catch (SQLException ex) {\\\\n // Ignore DROP statements as tables won't always exist.\\\\n if (((String) sqlBuffer[i]).indexOf(\\\\\\\"DROP \\\\\\\") < 0) {\\\\n Log.error(\\\\\\\"TradeDirect:recreateDBTables SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i], ex);\\\\n out.println(\\\\\\\"
SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i] + \\\\\\\" . Check log for details.\\\\\\\");\\\\n }\\\\n }\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n success = true;\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeDirect:recreateDBTables() -- Error dropping and recreating the database tables\\\\\\\");\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return success;\\\\n}\\\",\\n \\\"start_line\\\": 1598,\\n \\\"end_line\\\": 1632,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.Statement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"length\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"java.io.PrintWriter\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.Statement\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"reset\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1600,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1600,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1600,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1600,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1606,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1606,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1608,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1608,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"createStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1609,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 1609,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1613,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1613,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"indexOf\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1617,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1617,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.sql.SQLException\\\"\\n ],\\n \\\"start_line\\\": 1618,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1618,\\n \\\"end_column\\\": 129\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1619,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1619,\\n \\\"end_column\\\": 144\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1623,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1623,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1624,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1624,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1627,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1627,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1629,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1629,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1602,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1602,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"success\\\",\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"initializer\\\": \\\"false\\\",\\n \\\"start_line\\\": 1603,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1603,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.Statement\\\",\\n \\\"initializer\\\": \\\"conn.createStatement()\\\",\\n \\\"start_line\\\": 1609,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 1609,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"bufferLength\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"sqlBuffer.length\\\",\\n \\\"start_line\\\": 1610,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1610,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"name\\\": \\\"i\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"0\\\",\\n \\\"start_line\\\": 1611,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1611,\\n \\\"end_column\\\": 20\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static synchronized MDBStats getInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n if (mdbStats == null) {\\\\n mdbStats = new MDBStats();\\\\n }\\\\n return mdbStats;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 38,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats.mdbStats\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"resetTrade(boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"deleteAll\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n // Clear MDB Statistics\\\\n MDBStats.getInstance().reset();\\\\n // Reset Trade\\\\n RunStatsDataBean runStatsData = new RunStatsDataBean();\\\\n Connection conn = null;\\\\n try {\\\\n conn = datasource.getConnection();\\\\n conn.setAutoCommit(false);\\\\n PreparedStatement stmt = null;\\\\n ResultSet rs = null;\\\\n if (deleteAll) {\\\\n try {\\\\n stmt = getStatement(conn, \\\\\\\"delete from quoteejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountprofileejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from holdingejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n // FUTURE: - DuplicateKeyException - For now, don't start at\\\\n // zero as KeySequenceDirect and KeySequenceBean will still\\\\n // give out\\\\n // the cached Block and then notice this change. Better\\\\n // solution is\\\\n // to signal both classes to drop their cached blocks\\\\n // stmt = getStatement(conn, \\\\\\\"delete from keygenejb\\\\\\\");\\\\n // stmt.executeUpdate();\\\\n // stmt.close();\\\\n conn.commit();\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeDirect:resetTrade(deleteAll) -- Error deleting Trade users and stock from the Trade database\\\\\\\");\\\\n }\\\\n return runStatsData;\\\\n }\\\\n stmt = getStatement(conn, \\\\\\\"delete from holdingejb where holdingejb.account_accountid is null\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n // Count and Delete newly registered users (users w/ id that start\\\\n // \\\\\\\"ru:%\\\\\\\":\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountprofileejb where userid like 'ru:%'\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb where account_accountid in (select accountid from accountejb a where a.profile_userid like 'ru:%')\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from holdingejb where account_accountid in (select accountid from accountejb a where a.profile_userid like 'ru:%')\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n stmt = getStatement(conn, \\\\\\\"delete from accountejb where profile_userid like 'ru:%'\\\\\\\");\\\\n int newUserCount = stmt.executeUpdate();\\\\n runStatsData.setNewUserCount(newUserCount);\\\\n stmt.close();\\\\n // Count of trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(accountid) as \\\\\\\\\\\\\\\"tradeUserCount\\\\\\\\\\\\\\\" from accountejb a where a.profile_userid like 'uid:%'\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int tradeUserCount = rs.getInt(\\\\\\\"tradeUserCount\\\\\\\");\\\\n runStatsData.setTradeUserCount(tradeUserCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Count of trade stocks\\\\n stmt = getStatement(conn, \\\\\\\"select count(symbol) as \\\\\\\\\\\\\\\"tradeStockCount\\\\\\\\\\\\\\\" from quoteejb a where a.symbol like 's:%'\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int tradeStockCount = rs.getInt(\\\\\\\"tradeStockCount\\\\\\\");\\\\n runStatsData.setTradeStockCount(tradeStockCount);\\\\n stmt.close();\\\\n // Count of trade users login, logout\\\\n stmt = getStatement(conn, \\\\\\\"select sum(loginCount) as \\\\\\\\\\\\\\\"sumLoginCount\\\\\\\\\\\\\\\", sum(logoutCount) as \\\\\\\\\\\\\\\"sumLogoutCount\\\\\\\\\\\\\\\" from accountejb a where a.profile_userID like 'uid:%'\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int sumLoginCount = rs.getInt(\\\\\\\"sumLoginCount\\\\\\\");\\\\n int sumLogoutCount = rs.getInt(\\\\\\\"sumLogoutCount\\\\\\\");\\\\n runStatsData.setSumLoginCount(sumLoginCount);\\\\n runStatsData.setSumLogoutCount(sumLogoutCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Update logoutcount and loginCount back to zero\\\\n stmt = getStatement(conn, \\\\\\\"update accountejb set logoutCount=0,loginCount=0 where profile_userID like 'uid:%'\\\\\\\");\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n // count holdings for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(holdingid) as \\\\\\\\\\\\\\\"holdingCount\\\\\\\\\\\\\\\" from holdingejb h where h.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int holdingCount = rs.getInt(\\\\\\\"holdingCount\\\\\\\");\\\\n runStatsData.setHoldingCount(holdingCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count orders for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) as \\\\\\\\\\\\\\\"orderCount\\\\\\\\\\\\\\\" from orderejb o where o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int orderCount = rs.getInt(\\\\\\\"orderCount\\\\\\\");\\\\n runStatsData.setOrderCount(orderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count orders by type for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) \\\\\\\\\\\\\\\"buyOrderCount\\\\\\\\\\\\\\\"from orderejb o where (o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')) AND \\\\\\\" + \\\\\\\" (o.orderType='buy')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int buyOrderCount = rs.getInt(\\\\\\\"buyOrderCount\\\\\\\");\\\\n runStatsData.setBuyOrderCount(buyOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count orders by type for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) \\\\\\\\\\\\\\\"sellOrderCount\\\\\\\\\\\\\\\"from orderejb o where (o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')) AND \\\\\\\" + \\\\\\\" (o.orderType='sell')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int sellOrderCount = rs.getInt(\\\\\\\"sellOrderCount\\\\\\\");\\\\n runStatsData.setSellOrderCount(sellOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Delete cancelled orders\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb where orderStatus='cancelled'\\\\\\\");\\\\n int cancelledOrderCount = stmt.executeUpdate();\\\\n runStatsData.setCancelledOrderCount(cancelledOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // count open orders by type for trade users\\\\n stmt = getStatement(conn, \\\\\\\"select count(orderid) \\\\\\\\\\\\\\\"openOrderCount\\\\\\\\\\\\\\\"from orderejb o where (o.account_accountid in \\\\\\\" + \\\\\\\"(select accountid from accountejb a where a.profile_userid like 'uid:%')) AND \\\\\\\" + \\\\\\\" (o.orderStatus='open')\\\\\\\");\\\\n rs = stmt.executeQuery();\\\\n rs.next();\\\\n int openOrderCount = rs.getInt(\\\\\\\"openOrderCount\\\\\\\");\\\\n runStatsData.setOpenOrderCount(openOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n // Delete orders for holding which have been purchased and sold\\\\n stmt = getStatement(conn, \\\\\\\"delete from orderejb where holding_holdingid is null\\\\\\\");\\\\n int deletedOrderCount = stmt.executeUpdate();\\\\n runStatsData.setDeletedOrderCount(deletedOrderCount);\\\\n stmt.close();\\\\n rs.close();\\\\n conn.commit();\\\\n System.out.println(\\\\\\\"TradeDirect:reset Run stats data\\\\\\\\n\\\\\\\\n\\\\\\\" + runStatsData);\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"Failed to reset Trade\\\\\\\");\\\\n conn.rollback();\\\\n throw e;\\\\n } finally {\\\\n conn.close();\\\\n }\\\\n return runStatsData;\\\\n}\\\",\\n \\\"start_line\\\": 245,\\n \\\"end_line\\\": 432,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils.datasource\\\",\\n \\\"java.lang.System.out\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"java.io.PrintStream\\\",\\n \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"javax.sql.DataSource\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"reset\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"getConnection\\\",\\n \\\"declaring_type\\\": \\\"javax.sql.DataSource\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 254,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 254,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setAutoCommit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 255,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 255,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 261,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 261,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 262,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 262,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 263,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 263,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 264,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 264,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 265,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 265,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 267,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 267,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 268,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 268,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 269,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 269,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 270,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 270,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 271,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 271,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 272,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 272,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 275,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 275,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 285,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 285,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 287,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 287,\\n \\\"end_column\\\": 123\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 292,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 292,\\n \\\"end_column\\\": 100\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 293,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 293,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 294,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 294,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 298,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 298,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 299,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 299,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 300,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 300,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 154\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 303,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 303,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 304,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 304,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 306,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 307,\\n \\\"end_column\\\": 134\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 308,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 308,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 309,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 309,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 311,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 311,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 312,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 312,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"setNewUserCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 313,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 313,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 314,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 314,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 317,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 317,\\n \\\"end_column\\\": 134\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 318,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 318,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 319,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 319,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 320,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 320,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setTradeUserCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 321,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 321,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 322,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 324,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 324,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 326,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 326,\\n \\\"end_column\\\": 120\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 327,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 327,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 328,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 328,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 329,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 329,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"setTradeStockCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 330,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 330,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 334,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 335,\\n \\\"end_column\\\": 151\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 336,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 336,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 337,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 337,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 338,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 338,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 339,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 339,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setSumLoginCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 340,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 340,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"setSumLogoutCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 341,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 342,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 342,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 344,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 347,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 347,\\n \\\"end_column\\\": 117\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 348,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 348,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 349,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 349,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 352,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 356,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 356,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 357,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 357,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"setHoldingCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 360,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 360,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 363,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 364,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 366,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 366,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 367,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 367,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 368,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 368,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 369,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 369,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 370,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 370,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 371,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 371,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 374,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 375,\\n \\\"end_column\\\": 118\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 378,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 378,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 379,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 379,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setBuyOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 380,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 380,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 382,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 382,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 386,\\n \\\"end_column\\\": 119\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 389,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 389,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setSellOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 391,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 391,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 393,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 393,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 397,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 397,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setCancelledOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 121\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 406,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 406,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 408,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 408,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setOpenOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 409,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 409,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 412,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 412,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 414,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 414,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 415,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 415,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"setDeletedOrderCount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 416,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 416,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 417,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 417,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 418,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 418,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 420,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 420,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintStream\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 422,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 422,\\n \\\"end_column\\\": 79\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 424,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 424,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 425,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 425,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 428,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 428,\\n \\\"end_column\\\": 18\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"runStatsData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.beans.RunStatsDataBean\\\",\\n \\\"initializer\\\": \\\"new RunStatsDataBean()\\\",\\n \\\"start_line\\\": 250,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 250,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 251,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 251,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"name\\\": \\\"newUserCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"stmt.executeUpdate()\\\",\\n \\\"start_line\\\": 312,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 312,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"tradeUserCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"tradeUserCount\\\\\\\")\\\",\\n \\\"start_line\\\": 320,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 320,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"tradeStockCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"tradeStockCount\\\\\\\")\\\",\\n \\\"start_line\\\": 329,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 329,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"name\\\": \\\"sumLoginCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"sumLoginCount\\\\\\\")\\\",\\n \\\"start_line\\\": 338,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 338,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"sumLogoutCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"sumLogoutCount\\\\\\\")\\\",\\n \\\"start_line\\\": 339,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 339,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"holdingCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"holdingCount\\\\\\\")\\\",\\n \\\"start_line\\\": 357,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 357,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"name\\\": \\\"orderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"orderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 368,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 368,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"buyOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"buyOrderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 379,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 379,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"sellOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"sellOrderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"cancelledOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"stmt.executeUpdate()\\\",\\n \\\"start_line\\\": 397,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 397,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"openOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"openOrderCount\\\\\\\")\\\",\\n \\\"start_line\\\": 408,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 408,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"name\\\": \\\"deletedOrderCount\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"stmt.executeUpdate()\\\",\\n \\\"start_line\\\": 415,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 415,\\n \\\"end_column\\\": 50\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static synchronized MDBStats getInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n if (mdbStats == null) {\\\\n mdbStats = new MDBStats();\\\\n }\\\\n return mdbStats;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 38,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats.mdbStats\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"recreateDBTables(Object[], java.io.PrintWriter)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private boolean recreateDBTables(Object[] sqlBuffer, java.io.PrintWriter out) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Object[]\\\",\\n \\\"name\\\": \\\"sqlBuffer\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"name\\\": \\\"out\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n // Clear MDB Statistics\\\\n MDBStats.getInstance().reset();\\\\n Connection conn = null;\\\\n boolean success = false;\\\\n try {\\\\n conn = datasource.getConnection();\\\\n Statement stmt = conn.createStatement();\\\\n int bufferLength = sqlBuffer.length;\\\\n for (int i = 0; i < bufferLength; i++) {\\\\n try {\\\\n stmt.executeUpdate((String) sqlBuffer[i]);\\\\n // commit(conn);\\\\n } catch (SQLException ex) {\\\\n // Ignore DROP statements as tables won't always exist.\\\\n if (((String) sqlBuffer[i]).indexOf(\\\\\\\"DROP \\\\\\\") < 0) {\\\\n Log.error(\\\\\\\"TradeDirect:recreateDBTables SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i], ex);\\\\n out.println(\\\\\\\"
SQL Exception thrown on executing the foll sql command: \\\\\\\" + sqlBuffer[i] + \\\\\\\" . Check log for details.\\\\\\\");\\\\n }\\\\n }\\\\n }\\\\n stmt.close();\\\\n conn.commit();\\\\n success = true;\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeDirect:recreateDBTables() -- Error dropping and recreating the database tables\\\\\\\");\\\\n } finally {\\\\n conn.close();\\\\n }\\\\n return success;\\\\n}\\\",\\n \\\"start_line\\\": 211,\\n \\\"end_line\\\": 242,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.Statement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils.datasource\\\",\\n \\\"length\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"java.io.PrintWriter\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"javax.sql.DataSource\\\",\\n \\\"java.sql.Statement\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"reset\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 213,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 213,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 213,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 213,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"getConnection\\\",\\n \\\"declaring_type\\\": \\\"javax.sql.DataSource\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 218,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 218,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"createStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 219,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 219,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 223,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 223,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"indexOf\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 227,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 227,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.sql.SQLException\\\"\\n ],\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 129\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 229,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 229,\\n \\\"end_column\\\": 144\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Statement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 233,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 233,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 234,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 234,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Exception\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 237,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 237,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 239,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 239,\\n \\\"end_column\\\": 18\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 215,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 215,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"success\\\",\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"initializer\\\": \\\"false\\\",\\n \\\"start_line\\\": 216,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 216,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.Statement\\\",\\n \\\"initializer\\\": \\\"conn.createStatement()\\\",\\n \\\"start_line\\\": 219,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 219,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"bufferLength\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"sqlBuffer.length\\\",\\n \\\"start_line\\\": 220,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 220,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"name\\\": \\\"i\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"0\\\",\\n \\\"start_line\\\": 221,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 221,\\n \\\"end_column\\\": 20\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirectDBUtils\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"DTStreamer3MDB()\\\",\\n \\\"comment\\\": \\\"/** Creates a new instance of TradeSteamerMDB */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public DTStreamer3MDB()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"DTStreamer3MDB:DTStreamer3MDB()\\\\\\\");\\\\n if (statInterval <= 0) {\\\\n statInterval = 10000;\\\\n }\\\\n mdbStats = MDBStats.getInstance();\\\\n}\\\",\\n \\\"start_line\\\": 56,\\n \\\"end_line\\\": 63,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.mdb.DTStreamer3MDB.mdbStats\\\",\\n \\\"com.ibm.websphere.samples.daytrader.mdb.DTStreamer3MDB.statInterval\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 57,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 57,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getInstance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 62,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 62,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.mdb.DTStreamer3MDB\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static synchronized MDBStats getInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n if (mdbStats == null) {\\\\n mdbStats = new MDBStats();\\\\n }\\\\n return mdbStats;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 38,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.MDBStats\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.MDBStats.mdbStats\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.MDBStats\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"doTrace()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static boolean doTrace()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return log.isLoggable(Level.FINE);\\\\n}\\\",\\n \\\"start_line\\\": 155,\\n \\\"end_line\\\": 157,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"isLoggable\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\"\\n ],\\n \\\"start_line\\\": 156,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 156,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"releaseConn(Connection)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void releaseConn(Connection conn) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n try {\\\\n if (conn != null) {\\\\n conn.close();\\\\n if (Log.doTrace()) {\\\\n synchronized (lock) {\\\\n connCount--;\\\\n }\\\\n Log.trace(\\\\\\\"TradeDirect:releaseConn -- connection closed, connCount=\\\\\\\" + connCount);\\\\n }\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:releaseConnection -- failed to close connection\\\\\\\", e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1638,\\n \\\"end_line\\\": 1652,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.connCount\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.lock\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1641,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1641,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"doTrace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1642,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 1642,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1646,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1646,\\n \\\"end_column\\\": 91\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1650,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1650,\\n \\\"end_column\\\": 81\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getConn()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private Connection getConn() throws Exception\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n Connection conn = datasource.getConnection();\\\\n if (!this.inGlobalTxn) {\\\\n conn.setAutoCommit(false);\\\\n }\\\\n if (Log.doTrace()) {\\\\n synchronized (lock) {\\\\n connCount++;\\\\n }\\\\n Log.trace(\\\\\\\"TradeDirect:getConn -- new connection allocated, IsolationLevel=\\\\\\\" + conn.getTransactionIsolation() + \\\\\\\" connectionCount = \\\\\\\" + connCount);\\\\n }\\\\n return conn;\\\\n}\\\",\\n \\\"start_line\\\": 1662,\\n \\\"end_line\\\": 1677,\\n \\\"return_type\\\": \\\"java.sql.Connection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.connCount\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.datasource\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inGlobalTxn\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.lock\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"javax.sql.DataSource\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getConnection\\\",\\n \\\"declaring_type\\\": \\\"javax.sql.DataSource\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1664,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1664,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"setAutoCommit\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1667,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1667,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"doTrace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1669,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1669,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1673,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1673,\\n \\\"end_column\\\": 152\\n },\\n {\\n \\\"method_name\\\": \\\"getTransactionIsolation\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1673,\\n \\\"start_column\\\": 86,\\n \\\"end_line\\\": 1673,\\n \\\"end_column\\\": 115\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"datasource.getConnection()\\\",\\n \\\"start_line\\\": 1664,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1664,\\n \\\"end_column\\\": 48\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"doTrace()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static boolean doTrace()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return log.isLoggable(Level.FINE);\\\\n}\\\",\\n \\\"start_line\\\": 155,\\n \\\"end_line\\\": 157,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"isLoggable\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\"\\n ],\\n \\\"start_line\\\": 156,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 156,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(Connection, int, String, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(Connection conn, int accountID, String symbol, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"accountID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp purchaseDate = new Timestamp(System.currentTimeMillis());\\\\n PreparedStatement stmt = getStatement(conn, createHoldingSQL);\\\\n Integer holdingID = KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn());\\\\n stmt.setInt(1, holdingID.intValue());\\\\n stmt.setTimestamp(2, purchaseDate);\\\\n stmt.setBigDecimal(3, purchasePrice);\\\\n stmt.setDouble(4, quantity);\\\\n stmt.setString(5, symbol);\\\\n stmt.setInt(6, accountID);\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n return getHoldingData(conn, holdingID.intValue());\\\\n}\\\",\\n \\\"start_line\\\": 681,\\n \\\"end_line\\\": 698,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.createHoldingSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"java.lang.System\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getNextID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 81,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 96\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 688,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 688,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 689,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 689,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setDouble\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 690,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 690,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 691,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 691,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 692,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 692,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 693,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 693,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 695,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 695,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"purchaseDate\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(System.currentTimeMillis())\\\",\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, createHoldingSQL)\\\",\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn())\\\",\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getOrders(String)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#getOrders(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public Collection getOrders(String userID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Collection orderDataBeans = new ArrayList();\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:getOrders - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID);\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, getOrdersByUserSQL);\\\\n stmt.setString(1, userID);\\\\n ResultSet rs = stmt.executeQuery();\\\\n // TODO: return top 5 orders for now -- next version will add a\\\\n // getAllOrders method\\\\n // also need to get orders sorted by order id descending\\\\n int i = 0;\\\\n while ((rs.next()) && (i++ < 5)) {\\\\n OrderDataBean orderData = getOrderDataFromResultSet(rs);\\\\n orderDataBeans.add(orderData);\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getOrders -- error getting user orders\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderDataBeans;\\\\n}\\\",\\n \\\"start_line\\\": 763,\\n \\\"end_line\\\": 796,\\n \\\"return_type\\\": \\\"java.util.Collection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getOrdersByUserSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 768,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 768,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 771,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 771,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 772,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 772,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 773,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 773,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 775,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 775,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 781,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 781,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 782,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 782,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 783,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 783,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 786,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 786,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 787,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 787,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 790,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 790,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 791,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 791,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 793,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 793,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"orderDataBeans\\\",\\n \\\"type\\\": \\\"java.util.Collection\\\",\\n \\\"initializer\\\": \\\"new ArrayList()\\\",\\n \\\"start_line\\\": 765,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 765,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 766,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 766,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getOrdersByUserSQL)\\\",\\n \\\"start_line\\\": 772,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 772,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 775,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 775,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"name\\\": \\\"i\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"0\\\",\\n \\\"start_line\\\": 780,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 780,\\n \\\"end_column\\\": 15\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"getOrderDataFromResultSet(rs)\\\",\\n \\\"start_line\\\": 782,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 782,\\n \\\"end_column\\\": 63\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getClosedOrders(String)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#getClosedOrders(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public Collection getClosedOrders(String userID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Collection orderDataBeans = new ArrayList();\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:getClosedOrders - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID);\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, getClosedOrdersSQL);\\\\n stmt.setString(1, userID);\\\\n ResultSet rs = stmt.executeQuery();\\\\n while (rs.next()) {\\\\n OrderDataBean orderData = getOrderDataFromResultSet(rs);\\\\n orderData.setOrderStatus(\\\\\\\"completed\\\\\\\");\\\\n updateOrderStatus(conn, orderData.getOrderID(), orderData.getOrderStatus());\\\\n orderDataBeans.add(orderData);\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getOrders -- error getting user orders\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderDataBeans;\\\\n}\\\",\\n \\\"start_line\\\": 801,\\n \\\"end_line\\\": 833,\\n \\\"return_type\\\": \\\"java.util.Collection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getClosedOrdersSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 807,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 807,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 810,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 810,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 811,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 811,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 812,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 812,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 814,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 814,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 816,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 816,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 817,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 817,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 818,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 818,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 82\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 820,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 820,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 824,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 824,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 825,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 825,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 827,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 827,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 828,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 828,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 830,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 830,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"orderDataBeans\\\",\\n \\\"type\\\": \\\"java.util.Collection\\\",\\n \\\"initializer\\\": \\\"new ArrayList()\\\",\\n \\\"start_line\\\": 803,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 803,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 804,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 804,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getClosedOrdersSQL)\\\",\\n \\\"start_line\\\": 811,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 811,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 814,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 814,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"getOrderDataFromResultSet(rs)\\\",\\n \\\"start_line\\\": 817,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 817,\\n \\\"end_column\\\": 63\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getAllQuotes()\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#getAllQuotes(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public Collection getAllQuotes() throws Exception\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n Collection quotes = new ArrayList();\\\\n QuoteDataBean quoteData = null;\\\\n Connection conn = null;\\\\n try {\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, getAllQuotesSQL);\\\\n ResultSet rs = stmt.executeQuery();\\\\n while (!rs.next()) {\\\\n quoteData = getQuoteDataFromResultSet(rs);\\\\n quotes.add(quoteData);\\\\n }\\\\n stmt.close();\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getAllQuotes\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return quotes;\\\\n}\\\",\\n \\\"start_line\\\": 940,\\n \\\"end_line\\\": 967,\\n \\\"return_type\\\": \\\"java.util.Collection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getAllQuotesSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 947,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 947,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 949,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 949,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 951,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 951,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 953,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 953,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 954,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 954,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 955,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 955,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 958,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 958,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 960,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 960,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 961,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 961,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 963,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 963,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quotes\\\",\\n \\\"type\\\": \\\"java.util.Collection\\\",\\n \\\"initializer\\\": \\\"new ArrayList()\\\",\\n \\\"start_line\\\": 942,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 942,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 943,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 943,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 945,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 945,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getAllQuotesSQL)\\\",\\n \\\"start_line\\\": 949,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 949,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 951,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 951,\\n \\\"end_column\\\": 40\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getHoldings(String)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#getHoldings(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public Collection getHoldings(String userID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Collection holdingDataBeans = new ArrayList();\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:getHoldings - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID);\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, getHoldingsForUserSQL);\\\\n stmt.setString(1, userID);\\\\n ResultSet rs = stmt.executeQuery();\\\\n while (rs.next()) {\\\\n HoldingDataBean holdingData = getHoldingDataFromResultSet(rs);\\\\n holdingDataBeans.add(holdingData);\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getHoldings -- error getting user holings\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return holdingDataBeans;\\\\n}\\\",\\n \\\"start_line\\\": 972,\\n \\\"end_line\\\": 1002,\\n \\\"return_type\\\": \\\"java.util.Collection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getHoldingsForUserSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 978,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 978,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 981,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 981,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 982,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 982,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 983,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 983,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 985,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 985,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 987,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 987,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 988,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 988,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 989,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 989,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 992,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 992,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 993,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 993,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 996,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 996,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 997,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 997,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 999,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 999,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"holdingDataBeans\\\",\\n \\\"type\\\": \\\"java.util.Collection\\\",\\n \\\"initializer\\\": \\\"new ArrayList()\\\",\\n \\\"start_line\\\": 974,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 974,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 975,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 975,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getHoldingsForUserSQL)\\\",\\n \\\"start_line\\\": 982,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 982,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 985,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 985,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"getHoldingDataFromResultSet(rs)\\\",\\n \\\"start_line\\\": 988,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 988,\\n \\\"end_column\\\": 69\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateHoldingStatus(Connection, Integer, String)\\\",\\n \\\"comment\\\": \\\"// UPDATE -- could add a \\\\\\\"status\\\\\\\" attribute to holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void updateHoldingStatus(Connection conn, Integer holdingID, String symbol) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp ts = new Timestamp(0);\\\\n PreparedStatement stmt = getStatement(conn, \\\\\\\"update holdingejb set purchasedate= ? where holdingid = ?\\\\\\\");\\\\n stmt.setTimestamp(1, ts);\\\\n stmt.setInt(2, holdingID.intValue());\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n}\\\",\\n \\\"start_line\\\": 1250,\\n \\\"end_line\\\": 1258,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1252,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1252,\\n \\\"end_column\\\": 108\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 1254,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1254,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1255,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1255,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1255,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 1255,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1256,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1256,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1257,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1257,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"ts\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(0)\\\",\\n \\\"start_line\\\": 1251,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1251,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, \\\\\\\"update holdingejb set purchasedate= ? where holdingid = ?\\\\\\\")\\\",\\n \\\"start_line\\\": 1252,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1252,\\n \\\"end_column\\\": 108\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"logout(String)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#logout(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public void logout(String userID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:logout - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID);\\\\n Connection conn = null;\\\\n try {\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, logoutSQL);\\\\n stmt.setString(1, userID);\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:logout -- error logging out user\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1469,\\n \\\"end_line\\\": 1488,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.logoutSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1471,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1471,\\n \\\"end_column\\\": 79\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1475,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1475,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1476,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 1476,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1477,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1477,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1478,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1478,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1479,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1479,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1481,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1481,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1483,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1483,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1484,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1484,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1486,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1486,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1473,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1473,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, logoutSQL)\\\",\\n \\\"start_line\\\": 1476,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 1476,\\n \\\"end_column\\\": 60\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rollBack(Connection, Exception)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Rollback the statement for the given connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void rollBack(Connection conn, Exception e) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Exception\\\",\\n \\\"name\\\": \\\"e\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!inSession) {\\\\n Log.log(\\\\\\\"TradeDirect:rollBack -- rolling back conn due to previously caught exception -- inGlobalTxn=\\\\\\\" + getInGlobalTxn());\\\\n if ((getInGlobalTxn() == false) && (conn != null)) {\\\\n conn.rollback();\\\\n } else {\\\\n // Throw the exception\\\\n throw e;\\\\n // so the Global txn manager will rollBack\\\\n }\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1699,\\n \\\"end_line\\\": 1709,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1701,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1701,\\n \\\"end_column\\\": 128\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1701,\\n \\\"start_column\\\": 112,\\n \\\"end_line\\\": 1701,\\n \\\"end_column\\\": 127\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1702,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1702,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1703,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1703,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"log(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void log(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.INFO, message);\\\\n}\\\",\\n \\\"start_line\\\": 32,\\n \\\"end_line\\\": 34,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"java.util.logging.Level.INFO\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 33,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 33,\\n \\\"end_column\\\": 32\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolumeInt(String, BigDecimal, double, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Update a quote's price and volume\\\\n *\\\\n * @param symbol\\\\n * The PK of the quote\\\\n * @param changeFactor\\\\n * the percent to change the old price by (between 50% and 150%)\\\\n * @param sharedTraded\\\\n * the ammount to add to the current volume\\\\n * @param publishQuotePriceChange\\\\n * used by the PingJDBCWrite Primitive to ensure no JMS is used,\\\\n * should be true for all normal calls to this API\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolumeInt(String symbol, BigDecimal changeFactor, double sharesTraded, boolean publishQuotePriceChange) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (TradeConfig.getUpdateQuotePrices() == false) {\\\\n return new QuoteDataBean();\\\\n }\\\\n QuoteDataBean quoteData = null;\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:updateQuotePriceVolume - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", symbol, changeFactor, new Double(sharesTraded));\\\\n conn = getConn();\\\\n quoteData = getQuoteForUpdate(conn, symbol);\\\\n BigDecimal oldPrice = quoteData.getPrice();\\\\n BigDecimal openPrice = quoteData.getOpen();\\\\n double newVolume = quoteData.getVolume() + sharesTraded;\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n double change = newPrice.subtract(openPrice).doubleValue();\\\\n updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume, change);\\\\n quoteData = getQuote(conn, symbol);\\\\n commit(conn);\\\\n if (publishQuotePriceChange) {\\\\n publishQuotePriceChange(quoteData, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quoteData);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:updateQuotePriceVolume -- error updating quote price/volume for symbol:\\\\\\\" + symbol);\\\\n rollBack(conn, e);\\\\n throw e;\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return quoteData;\\\\n}\\\",\\n \\\"start_line\\\": 1311,\\n \\\"end_line\\\": 1360,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.recentQuotePriceChangeList\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1314,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1314,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.Double\\\"\\n ],\\n \\\"start_line\\\": 1322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1322,\\n \\\"end_column\\\": 137\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1324,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1324,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteForUpdate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1326,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1326,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1332,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1332,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1334,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1334,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1342,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1342,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1344,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1347,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1347,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 1350,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1350,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1353,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1353,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1354,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1354,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1357,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1357,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1318,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1318,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1319,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1319,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getOpen()\\\",\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"newVolume\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"quoteData.getVolume() + sharesTraded\\\",\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"change\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"newPrice.subtract(openPrice).doubleValue()\\\",\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(Connection, String, BigDecimal, double, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void updateQuotePriceVolume(Connection conn, String symbol, BigDecimal newPrice, double newVolume, double change) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"newVolume\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"change\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n PreparedStatement stmt = getStatement(conn, updateQuotePriceVolumeSQL);\\\\n stmt.setBigDecimal(1, newPrice);\\\\n stmt.setDouble(2, change);\\\\n stmt.setDouble(3, newVolume);\\\\n stmt.setString(4, symbol);\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n}\\\",\\n \\\"start_line\\\": 1362,\\n \\\"end_line\\\": 1373,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.updateQuotePriceVolumeSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1364,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1364,\\n \\\"end_column\\\": 74\\n },\\n {\\n \\\"method_name\\\": \\\"setBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1366,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1366,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"method_name\\\": \\\"setDouble\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1367,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1367,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setDouble\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1368,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1368,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1369,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1369,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1371,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1371,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1372,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1372,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, updateQuotePriceVolumeSQL)\\\",\\n \\\"start_line\\\": 1364,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1364,\\n \\\"end_column\\\": 74\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getQuoteData(Connection, String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private QuoteDataBean getQuoteData(Connection conn, String symbol) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n QuoteDataBean quoteData = null;\\\\n PreparedStatement stmt = getStatement(conn, getQuoteSQL);\\\\n stmt.setString(1, symbol);\\\\n ResultSet rs = stmt.executeQuery();\\\\n if (!rs.next()) {\\\\n Log.error(\\\\\\\"TradeDirect:getQuoteData -- could not find quote for symbol=\\\\\\\" + symbol);\\\\n } else {\\\\n quoteData = getQuoteDataFromResultSet(rs);\\\\n }\\\\n stmt.close();\\\\n return quoteData;\\\\n}\\\",\\n \\\"start_line\\\": 1100,\\n \\\"end_line\\\": 1112,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getQuoteSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1102,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1102,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1103,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1103,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1104,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 1104,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1105,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 1105,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1106,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1106,\\n \\\"end_column\\\": 88\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 1108,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1108,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1110,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1110,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1101,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1101,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getQuoteSQL)\\\",\\n \\\"start_line\\\": 1102,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1102,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 1104,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1104,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"error(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void error(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n message = \\\\\\\"Error: \\\\\\\" + message;\\\\n log.severe(message);\\\\n}\\\",\\n \\\"start_line\\\": 44,\\n \\\"end_line\\\": 47,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"severe\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 46,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 46,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void publishQuotePriceChange(QuoteDataBean quoteData, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:publishQuotePrice PUBLISHING to MDB quoteData = \\\\\\\" + quoteData);\\\\n try (JMSContext context = topicConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quoteData.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quoteData.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quoteData.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quoteData.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quoteData.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quoteData.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quoteData.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quoteData.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quoteData.getPrice());\\\\n context.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass exception back\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1375,\\n \\\"end_line\\\": 1404,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.topicConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeStreamerTopic\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1377,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1377,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1382,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1382,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1393,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1393,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 142\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 122,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.FINE, message + \\\\\\\" threadID=\\\\\\\" + Thread.currentThread());\\\\n}\\\",\\n \\\"start_line\\\": 75,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Thread\\\",\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentThread\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Thread\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 71\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getCompanyName()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getCompanyName()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return companyName;\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 140,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void publishQuotePriceChange(QuoteDataBean quoteData, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:publishQuotePrice PUBLISHING to MDB quoteData = \\\\\\\" + quoteData);\\\\n try (JMSContext context = topicConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quoteData.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quoteData.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quoteData.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quoteData.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quoteData.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quoteData.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quoteData.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quoteData.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quoteData.getPrice());\\\\n context.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass exception back\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1375,\\n \\\"end_line\\\": 1404,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.topicConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeStreamerTopic\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1377,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1377,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1382,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1382,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1393,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1393,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 142\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 122,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getCompanyName()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getCompanyName()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return companyName;\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 140,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void publishQuotePriceChange(QuoteDataBean quote, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getPublishQuotePriceChange()) {\\\\n return;\\\\n }\\\\n try (JMSContext topicContext = topicConnectionFactory.createContext()) {\\\\n TextMessage message = topicContext.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quote.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quote.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quote.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quote.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quote.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quote.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quote.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quote.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quote.getPrice());\\\\n topicContext.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw new EJBException(e.getMessage(), e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 511,\\n \\\"end_line\\\": 538,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.tradeStreamerTopic\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.topicConnectionFactory\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 513,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 513,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 520,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 520,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 74\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 530,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 530,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 140\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 124,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 139\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"getMessage\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Exception\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 536,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 536,\\n \\\"end_column\\\": 50\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"topicContext\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"topicContext.createTextMessage()\\\",\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getCompanyName()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getCompanyName()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return companyName;\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 140,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toString()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toString()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"\\\\\\\\n\\\\\\\\tQuote Data for: \\\\\\\" + getSymbol() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t companyName: \\\\\\\" + getCompanyName() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t volume: \\\\\\\" + getVolume() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t price: \\\\\\\" + getPrice() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t open1: \\\\\\\" + getOpen() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t low: \\\\\\\" + getLow() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t high: \\\\\\\" + getHigh() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t change1: \\\\\\\" + getChange();\\\\n}\\\",\\n \\\"start_line\\\": 113,\\n \\\"end_line\\\": 118,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 80,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 95\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 124,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 134\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 116,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 116,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 116,\\n \\\"start_column\\\": 58,\\n \\\"end_line\\\": 116,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 116,\\n \\\"start_column\\\": 95,\\n \\\"end_line\\\": 116,\\n \\\"end_column\\\": 102\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 116,\\n \\\"start_column\\\": 131,\\n \\\"end_line\\\": 116,\\n \\\"end_column\\\": 139\\n },\\n {\\n \\\"method_name\\\": \\\"getChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 117,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 117,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getCompanyName()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getCompanyName()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return companyName;\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 140,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toHTML()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toHTML()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"
Quote Data for: \\\\\\\" + getSymbol() + \\\\\\\" companyName: \\\\\\\" + getCompanyName() + \\\\\\\"\\\\\\\" + \\\\\\\" volume: \\\\\\\" + getVolume() + \\\\\\\"\\\\\\\" + \\\\\\\" price: \\\\\\\" + getPrice() + \\\\\\\"\\\\\\\" + \\\\\\\" open1: \\\\\\\" + getOpen() + \\\\\\\"\\\\\\\" + \\\\\\\" low: \\\\\\\" + getLow() + \\\\\\\"\\\\\\\" + \\\\\\\" high: \\\\\\\" + getHigh() + \\\\\\\"\\\\\\\" + \\\\\\\" change1: \\\\\\\" + getChange() + \\\\\\\"\\\\\\\";\\\\n}\\\",\\n \\\"start_line\\\": 120,\\n \\\"end_line\\\": 124,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 121,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 121,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 121,\\n \\\"start_column\\\": 78,\\n \\\"end_line\\\": 121,\\n \\\"end_column\\\": 93\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 121,\\n \\\"start_column\\\": 130,\\n \\\"end_line\\\": 121,\\n \\\"end_column\\\": 140\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 122,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 122,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 122,\\n \\\"start_column\\\": 89,\\n \\\"end_line\\\": 122,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 122,\\n \\\"start_column\\\": 134,\\n \\\"end_line\\\": 122,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 123,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 123,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 123,\\n \\\"start_column\\\": 88,\\n \\\"end_line\\\": 123,\\n \\\"end_column\\\": 98\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void publishQuotePriceChange(QuoteDataBean quoteData, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:publishQuotePrice PUBLISHING to MDB quoteData = \\\\\\\" + quoteData);\\\\n try (JMSContext context = topicConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quoteData.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quoteData.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quoteData.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quoteData.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quoteData.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quoteData.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quoteData.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quoteData.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quoteData.getPrice());\\\\n context.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass exception back\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1375,\\n \\\"end_line\\\": 1404,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.topicConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeStreamerTopic\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1377,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1377,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1382,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1382,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1393,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1393,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 142\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 122,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getCompanyName()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getCompanyName()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return companyName;\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 140,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getOpen()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public BigDecimal getOpen()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return open1;\\\\n}\\\",\\n \\\"start_line\\\": 154,\\n \\\"end_line\\\": 156,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.open1\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolumeInt(String, BigDecimal, double, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Update a quote's price and volume\\\\n *\\\\n * @param symbol\\\\n * The PK of the quote\\\\n * @param changeFactor\\\\n * the percent to change the old price by (between 50% and 150%)\\\\n * @param sharedTraded\\\\n * the ammount to add to the current volume\\\\n * @param publishQuotePriceChange\\\\n * used by the PingJDBCWrite Primitive to ensure no JMS is used,\\\\n * should be true for all normal calls to this API\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolumeInt(String symbol, BigDecimal changeFactor, double sharesTraded, boolean publishQuotePriceChange) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (TradeConfig.getUpdateQuotePrices() == false) {\\\\n return new QuoteDataBean();\\\\n }\\\\n QuoteDataBean quoteData = null;\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:updateQuotePriceVolume - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", symbol, changeFactor, new Double(sharesTraded));\\\\n conn = getConn();\\\\n quoteData = getQuoteForUpdate(conn, symbol);\\\\n BigDecimal oldPrice = quoteData.getPrice();\\\\n BigDecimal openPrice = quoteData.getOpen();\\\\n double newVolume = quoteData.getVolume() + sharesTraded;\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n double change = newPrice.subtract(openPrice).doubleValue();\\\\n updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume, change);\\\\n quoteData = getQuote(conn, symbol);\\\\n commit(conn);\\\\n if (publishQuotePriceChange) {\\\\n publishQuotePriceChange(quoteData, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quoteData);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:updateQuotePriceVolume -- error updating quote price/volume for symbol:\\\\\\\" + symbol);\\\\n rollBack(conn, e);\\\\n throw e;\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return quoteData;\\\\n}\\\",\\n \\\"start_line\\\": 1311,\\n \\\"end_line\\\": 1360,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.recentQuotePriceChangeList\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1314,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1314,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.Double\\\"\\n ],\\n \\\"start_line\\\": 1322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1322,\\n \\\"end_column\\\": 137\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1324,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1324,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteForUpdate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1326,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1326,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1332,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1332,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1334,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1334,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1342,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1342,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1344,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1347,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1347,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 1350,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1350,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1353,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1353,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1354,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1354,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1357,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1357,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1318,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1318,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1319,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1319,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getOpen()\\\",\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"newVolume\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"quoteData.getVolume() + sharesTraded\\\",\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"change\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"newPrice.subtract(openPrice).doubleValue()\\\",\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getOpen()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public BigDecimal getOpen()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return open1;\\\\n}\\\",\\n \\\"start_line\\\": 154,\\n \\\"end_line\\\": 156,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.open1\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"setVolume(double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void setVolume(double volume)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"volume\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n this.volume = volume;\\\\n}\\\",\\n \\\"start_line\\\": 190,\\n \\\"end_line\\\": 192,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.volume\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getTSIA()\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Gets the tSIA\\\\n *\\\\n * @return Returns a BigDecimal\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public BigDecimal getTSIA()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return TSIA;\\\\n}\\\",\\n \\\"start_line\\\": 178,\\n \\\"end_line\\\": 180,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.beans.MarketSummaryDataBean.TSIA\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.beans.MarketSummaryDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toString()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toString()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n String ret = \\\\\\\"\\\\\\\\n\\\\\\\\tMarket Summary at: \\\\\\\" + getSummaryDate() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t TSIA:\\\\\\\" + getTSIA() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t openTSIA:\\\\\\\" + getOpenTSIA() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t gain:\\\\\\\" + getGainPercent() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t volume:\\\\\\\" + getVolume();\\\\n if ((getTopGainers() == null) || (getTopLosers() == null)) {\\\\n return ret;\\\\n }\\\\n ret += \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t Current Top Gainers:\\\\\\\";\\\\n Iterator it = getTopGainers().iterator();\\\\n while (it.hasNext()) {\\\\n QuoteDataBean quoteData = it.next();\\\\n ret += (\\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t\\\\\\\\t\\\\\\\" + quoteData.toString());\\\\n }\\\\n ret += \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t Current Top Losers:\\\\\\\";\\\\n it = getTopLosers().iterator();\\\\n while (it.hasNext()) {\\\\n QuoteDataBean quoteData = it.next();\\\\n ret += (\\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t\\\\\\\\t\\\\\\\" + quoteData.toString());\\\\n }\\\\n return ret;\\\\n}\\\",\\n \\\"start_line\\\": 85,\\n \\\"end_line\\\": 106,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.util.Iterator\\\"\\n ],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.util.Iterator\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getSummaryDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 87,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 87,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getTSIA\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 87,\\n \\\"start_column\\\": 93,\\n \\\"end_line\\\": 87,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"method_name\\\": \\\"getOpenTSIA\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 87,\\n \\\"start_column\\\": 129,\\n \\\"end_line\\\": 87,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"getGainPercent\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 88,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 88,\\n \\\"start_column\\\": 86,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 96\\n },\\n {\\n \\\"method_name\\\": \\\"getTopGainers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 90,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 90,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getTopLosers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 90,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 90,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getTopGainers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 95,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 95,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 96,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 96,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 97,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 97,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"getTopLosers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 101,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 101,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 53\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"ret\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"\\\\\\\"\\\\\\\\n\\\\\\\\tMarket Summary at: \\\\\\\" + getSummaryDate() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t TSIA:\\\\\\\" + getTSIA() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t openTSIA:\\\\\\\" + getOpenTSIA() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t gain:\\\\\\\" + getGainPercent() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t volume:\\\\\\\" + getVolume()\\\",\\n \\\"start_line\\\": 87,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 96\\n },\\n {\\n \\\"name\\\": \\\"it\\\",\\n \\\"type\\\": \\\"java.util.Iterator\\\",\\n \\\"initializer\\\": \\\"getTopGainers().iterator()\\\",\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"it.next()\\\",\\n \\\"start_line\\\": 96,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 96,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"it.next()\\\",\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 47\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.beans.MarketSummaryDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getTSIA()\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Gets the tSIA\\\\n *\\\\n * @return Returns a BigDecimal\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public BigDecimal getTSIA()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return TSIA;\\\\n}\\\",\\n \\\"start_line\\\": 178,\\n \\\"end_line\\\": 180,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.beans.MarketSummaryDataBean.TSIA\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.beans.MarketSummaryDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toHTML()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toHTML()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n String ret = \\\\\\\"
Market Summary at: \\\\\\\" + getSummaryDate() + \\\\\\\" TSIA:\\\\\\\" + getTSIA() + \\\\\\\"\\\\\\\" + \\\\\\\" openTSIA:\\\\\\\" + getOpenTSIA() + \\\\\\\"\\\\\\\" + \\\\\\\" volume:\\\\\\\" + getVolume() + \\\\\\\"\\\\\\\";\\\\n if ((getTopGainers() == null) || (getTopLosers() == null)) {\\\\n return ret;\\\\n }\\\\n ret += \\\\\\\"
Current Top Gainers:\\\\\\\";\\\\n Iterator it = getTopGainers().iterator();\\\\n while (it.hasNext()) {\\\\n QuoteDataBean quoteData = it.next();\\\\n ret += (\\\\\\\"\\\\\\\" + quoteData.toString() + \\\\\\\"\\\\\\\");\\\\n }\\\\n ret += \\\\\\\"
Current Top Losers:\\\\\\\";\\\\n it = getTopLosers().iterator();\\\\n while (it.hasNext()) {\\\\n QuoteDataBean quoteData = it.next();\\\\n ret += (\\\\\\\"\\\\\\\" + quoteData.toString() + \\\\\\\"\\\\\\\");\\\\n }\\\\n return ret;\\\\n}\\\",\\n \\\"start_line\\\": 108,\\n \\\"end_line\\\": 128,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.util.Iterator\\\"\\n ],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.util.Iterator\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getSummaryDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 109,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 109,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getTSIA\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 109,\\n \\\"start_column\\\": 91,\\n \\\"end_line\\\": 109,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"getOpenTSIA\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 109,\\n \\\"start_column\\\": 135,\\n \\\"end_line\\\": 109,\\n \\\"end_column\\\": 147\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 110,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 110,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getTopGainers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 111,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 111,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getTopLosers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 111,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 111,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getTopGainers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 117,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 117,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 118,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 118,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 119,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 119,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 122,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 122,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"getTopLosers\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 122,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 122,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 123,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 123,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 124,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 124,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 125,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 125,\\n \\\"end_column\\\": 49\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"ret\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"\\\\\\\"
Market Summary at: \\\\\\\" + getSummaryDate() + \\\\\\\" TSIA:\\\\\\\" + getTSIA() + \\\\\\\"\\\\\\\" + \\\\\\\" openTSIA:\\\\\\\" + getOpenTSIA() + \\\\\\\"\\\\\\\" + \\\\\\\" volume:\\\\\\\" + getVolume() + \\\\\\\"\\\\\\\"\\\",\\n \\\"start_line\\\": 109,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 110,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"it\\\",\\n \\\"type\\\": \\\"java.util.Iterator\\\",\\n \\\"initializer\\\": \\\"getTopGainers().iterator()\\\",\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"it.next()\\\",\\n \\\"start_line\\\": 118,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 118,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"it.next()\\\",\\n \\\"start_line\\\": 124,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 124,\\n \\\"end_column\\\": 47\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.beans.MarketSummaryDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolumeInt(String, BigDecimal, double, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Update a quote's price and volume\\\\n *\\\\n * @param symbol\\\\n * The PK of the quote\\\\n * @param changeFactor\\\\n * the percent to change the old price by (between 50% and 150%)\\\\n * @param sharedTraded\\\\n * the ammount to add to the current volume\\\\n * @param publishQuotePriceChange\\\\n * used by the PingJDBCWrite Primitive to ensure no JMS is used,\\\\n * should be true for all normal calls to this API\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolumeInt(String symbol, BigDecimal changeFactor, double sharesTraded, boolean publishQuotePriceChange) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (TradeConfig.getUpdateQuotePrices() == false) {\\\\n return new QuoteDataBean();\\\\n }\\\\n QuoteDataBean quoteData = null;\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:updateQuotePriceVolume - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", symbol, changeFactor, new Double(sharesTraded));\\\\n conn = getConn();\\\\n quoteData = getQuoteForUpdate(conn, symbol);\\\\n BigDecimal oldPrice = quoteData.getPrice();\\\\n BigDecimal openPrice = quoteData.getOpen();\\\\n double newVolume = quoteData.getVolume() + sharesTraded;\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n double change = newPrice.subtract(openPrice).doubleValue();\\\\n updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume, change);\\\\n quoteData = getQuote(conn, symbol);\\\\n commit(conn);\\\\n if (publishQuotePriceChange) {\\\\n publishQuotePriceChange(quoteData, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quoteData);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:updateQuotePriceVolume -- error updating quote price/volume for symbol:\\\\\\\" + symbol);\\\\n rollBack(conn, e);\\\\n throw e;\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return quoteData;\\\\n}\\\",\\n \\\"start_line\\\": 1311,\\n \\\"end_line\\\": 1360,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.recentQuotePriceChangeList\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1314,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1314,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.Double\\\"\\n ],\\n \\\"start_line\\\": 1322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1322,\\n \\\"end_column\\\": 137\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1324,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1324,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteForUpdate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1326,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1326,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1332,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1332,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1334,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1334,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1342,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1342,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1344,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1347,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1347,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 1350,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1350,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1353,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1353,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1354,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1354,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1357,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1357,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1318,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1318,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1319,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1319,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getOpen()\\\",\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"newVolume\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"quoteData.getVolume() + sharesTraded\\\",\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"change\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"newPrice.subtract(openPrice).doubleValue()\\\",\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void publishQuotePriceChange(QuoteDataBean quoteData, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:publishQuotePrice PUBLISHING to MDB quoteData = \\\\\\\" + quoteData);\\\\n try (JMSContext context = topicConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quoteData.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quoteData.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quoteData.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quoteData.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quoteData.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quoteData.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quoteData.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quoteData.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quoteData.getPrice());\\\\n context.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass exception back\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 1375,\\n \\\"end_line\\\": 1404,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.topicConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeStreamerTopic\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1377,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1377,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1382,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1382,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1383,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1383,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1384,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 1384,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1385,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 1385,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1386,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 1386,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1387,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1387,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1388,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1388,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1389,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 1389,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1390,\\n \\\"start_column\\\": 43,\\n \\\"end_line\\\": 1390,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1392,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 1392,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1393,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1393,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1394,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 1394,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 142\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1395,\\n \\\"start_column\\\": 122,\\n \\\"end_line\\\": 1395,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1398,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1398,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 1379,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 1379,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 1380,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1380,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolumeInt(String, BigDecimal, double, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Update a quote's price and volume\\\\n *\\\\n * @param symbol\\\\n * The PK of the quote\\\\n * @param changeFactor\\\\n * the percent to change the old price by (between 50% and 150%)\\\\n * @param sharedTraded\\\\n * the ammount to add to the current volume\\\\n * @param publishQuotePriceChange\\\\n * used by the PingJDBCWrite Primitive to ensure no JMS is used,\\\\n * should be true for all normal calls to this API\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolumeInt(String symbol, BigDecimal changeFactor, double sharesTraded, boolean publishQuotePriceChange) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (TradeConfig.getUpdateQuotePrices() == false) {\\\\n return new QuoteDataBean();\\\\n }\\\\n QuoteDataBean quoteData = null;\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:updateQuotePriceVolume - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", symbol, changeFactor, new Double(sharesTraded));\\\\n conn = getConn();\\\\n quoteData = getQuoteForUpdate(conn, symbol);\\\\n BigDecimal oldPrice = quoteData.getPrice();\\\\n BigDecimal openPrice = quoteData.getOpen();\\\\n double newVolume = quoteData.getVolume() + sharesTraded;\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n double change = newPrice.subtract(openPrice).doubleValue();\\\\n updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume, change);\\\\n quoteData = getQuote(conn, symbol);\\\\n commit(conn);\\\\n if (publishQuotePriceChange) {\\\\n publishQuotePriceChange(quoteData, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quoteData);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:updateQuotePriceVolume -- error updating quote price/volume for symbol:\\\\\\\" + symbol);\\\\n rollBack(conn, e);\\\\n throw e;\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return quoteData;\\\\n}\\\",\\n \\\"start_line\\\": 1311,\\n \\\"end_line\\\": 1360,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.recentQuotePriceChangeList\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1314,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1314,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.Double\\\"\\n ],\\n \\\"start_line\\\": 1322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1322,\\n \\\"end_column\\\": 137\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1324,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1324,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteForUpdate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1326,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1326,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1332,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1332,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1334,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1334,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1342,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1342,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1344,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1347,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1347,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 1350,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1350,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1353,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1353,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1354,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1354,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1357,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1357,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1318,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1318,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1319,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1319,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getOpen()\\\",\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"newVolume\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"quoteData.getVolume() + sharesTraded\\\",\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"change\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"newPrice.subtract(openPrice).doubleValue()\\\",\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"QuoteDataBean()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n}\\\",\\n \\\"start_line\\\": 82,\\n \\\"end_line\\\": 83,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object, Object, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1, Object parm2, Object parm3)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm2\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm3\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\", \\\\\\\" + parm2 + \\\\\\\", \\\\\\\" + parm3 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 91,\\n \\\"end_line\\\": 93,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 92,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 92,\\n \\\"end_column\\\": 68\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.FINE, message + \\\\\\\" threadID=\\\\\\\" + Thread.currentThread());\\\\n}\\\",\\n \\\"start_line\\\": 75,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Thread\\\",\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentThread\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Thread\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 71\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolumeInt(String, BigDecimal, double, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Update a quote's price and volume\\\\n *\\\\n * @param symbol\\\\n * The PK of the quote\\\\n * @param changeFactor\\\\n * the percent to change the old price by (between 50% and 150%)\\\\n * @param sharedTraded\\\\n * the ammount to add to the current volume\\\\n * @param publishQuotePriceChange\\\\n * used by the PingJDBCWrite Primitive to ensure no JMS is used,\\\\n * should be true for all normal calls to this API\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolumeInt(String symbol, BigDecimal changeFactor, double sharesTraded, boolean publishQuotePriceChange) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (TradeConfig.getUpdateQuotePrices() == false) {\\\\n return new QuoteDataBean();\\\\n }\\\\n QuoteDataBean quoteData = null;\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:updateQuotePriceVolume - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", symbol, changeFactor, new Double(sharesTraded));\\\\n conn = getConn();\\\\n quoteData = getQuoteForUpdate(conn, symbol);\\\\n BigDecimal oldPrice = quoteData.getPrice();\\\\n BigDecimal openPrice = quoteData.getOpen();\\\\n double newVolume = quoteData.getVolume() + sharesTraded;\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n double change = newPrice.subtract(openPrice).doubleValue();\\\\n updateQuotePriceVolume(conn, quoteData.getSymbol(), newPrice, newVolume, change);\\\\n quoteData = getQuote(conn, symbol);\\\\n commit(conn);\\\\n if (publishQuotePriceChange) {\\\\n publishQuotePriceChange(quoteData, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quoteData);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:updateQuotePriceVolume -- error updating quote price/volume for symbol:\\\\\\\" + symbol);\\\\n rollBack(conn, e);\\\\n throw e;\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return quoteData;\\\\n}\\\",\\n \\\"start_line\\\": 1311,\\n \\\"end_line\\\": 1360,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.recentQuotePriceChangeList\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1314,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1314,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.Double\\\"\\n ],\\n \\\"start_line\\\": 1322,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1322,\\n \\\"end_column\\\": 137\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1324,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1324,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteForUpdate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1326,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1326,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1332,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 1332,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1334,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1334,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1341,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 1341,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1342,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1342,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1344,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1344,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1347,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 1347,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 1350,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1350,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1353,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1353,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1354,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1354,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1357,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1357,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1318,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 1318,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1319,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1319,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 1327,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1327,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getOpen()\\\",\\n \\\"start_line\\\": 1328,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1328,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"name\\\": \\\"newVolume\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"quoteData.getVolume() + sharesTraded\\\",\\n \\\"start_line\\\": 1330,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1330,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 1338,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 1338,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"change\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"newPrice.subtract(openPrice).doubleValue()\\\",\\n \\\"start_line\\\": 1339,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1339,\\n \\\"end_column\\\": 64\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object, Object, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1, Object parm2, Object parm3)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm2\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm3\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\", \\\\\\\" + parm2 + \\\\\\\", \\\\\\\" + parm3 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 91,\\n \\\"end_line\\\": 93,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 92,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 92,\\n \\\"end_column\\\": 68\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 83,\\n \\\"end_line\\\": 85,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 84,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 84,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.FINE, message + \\\\\\\" threadID=\\\\\\\" + Thread.currentThread());\\\\n}\\\",\\n \\\"start_line\\\": 75,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Thread\\\",\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentThread\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Thread\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 71\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"queueOrder(Integer, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#queueOrder(Integer)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public void queueOrder(Integer orderID, boolean twoPhase) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"twoPhase\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:queueOrder - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", orderID);\\\\n try (JMSContext context = queueConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"neworder\\\\\\\");\\\\n message.setIntProperty(\\\\\\\"orderID\\\\\\\", orderID.intValue());\\\\n message.setBooleanProperty(\\\\\\\"twoPhase\\\\\\\", twoPhase);\\\\n message.setBooleanProperty(\\\\\\\"direct\\\\\\\", true);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"neworder: orderID=\\\\\\\" + orderID + \\\\\\\" runtimeMode=Direct twoPhase=\\\\\\\" + twoPhase);\\\\n context.createProducer().send(tradeBrokerQueue, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 487,\\n \\\"end_line\\\": 508,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeBrokerQueue\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.queueConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"javax.jms.QueueConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 491,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 491,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.QueueConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 494,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 494,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 495,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 495,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 497,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 497,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setIntProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 498,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 498,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 498,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 498,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"setBooleanProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 499,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 499,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setBooleanProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 500,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 500,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 501,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 501,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 501,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 501,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 502,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 502,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Queue\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 504,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 504,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 504,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 504,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"queueConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 494,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 494,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 495,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 495,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 83,\\n \\\"end_line\\\": 85,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 84,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 84,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"buy(String, String, double, int)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#buy(String, String, double)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\",\\n \\\"@NotNull\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"orderProcessingMode\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n final Connection conn = getConn();\\\\n OrderDataBean orderData = null;\\\\n BigDecimal total;\\\\n try {\\\\n //, userID, symbol, new Double(quantity));\\\\n Log.trace(\\\\\\\"TradeDirect:buy - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\");\\\\n if (!inSession && orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n Log.trace(\\\\\\\"TradeDirect:buy create/begin global transaction\\\\\\\");\\\\n txn.begin();\\\\n setInGlobalTxn(true);\\\\n }\\\\n //conn = getConn();\\\\n AccountDataBean accountData = getAccountData(conn, userID);\\\\n QuoteDataBean quoteData = getQuoteData(conn, symbol);\\\\n // the buy operation will create\\\\n HoldingDataBean holdingData = null;\\\\n // the holding\\\\n orderData = createOrder(accountData, quoteData, holdingData, \\\\\\\"buy\\\\\\\", quantity);\\\\n // Update -- account should be credited during completeOrder\\\\n BigDecimal price = quoteData.getPrice();\\\\n BigDecimal orderFee = orderData.getOrderFee();\\\\n total = (new BigDecimal(quantity).multiply(price)).add(orderFee);\\\\n // subtract total from account balance\\\\n creditAccountBalance(conn, accountData, total.negate());\\\\n final Integer orderID = orderData.getOrderID();\\\\n try {\\\\n if (orderProcessingMode == TradeConfig.SYNCH) {\\\\n completeOrder(conn, orderData.getOrderID());\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH) {\\\\n completeOrderAsync(orderID, true);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n // 2-phase\\\\n queueOrder(orderID, true);\\\\n }\\\\n } catch (JMSException je) {\\\\n Log.error(\\\\\\\"TradeBean:buy(\\\\\\\" + userID + \\\\\\\",\\\\\\\" + symbol + \\\\\\\",\\\\\\\" + quantity + \\\\\\\") --> failed to queueOrder\\\\\\\", je);\\\\n cancelOrder(conn, orderData.getOrderID());\\\\n }\\\\n orderData = getOrderData(conn, orderData.getOrderID().intValue());\\\\n if (getInGlobalTxn()) {\\\\n Log.trace(\\\\\\\"TradeDirect:buy committing global transaction\\\\\\\");\\\\n if (!inSession && orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n txn.commit();\\\\n setInGlobalTxn(false);\\\\n }\\\\n } else {\\\\n commit(conn);\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:buy error - rolling back\\\\\\\", e);\\\\n if (getInGlobalTxn()) {\\\\n txn.rollback();\\\\n } else {\\\\n rollBack(conn, e);\\\\n }\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderData;\\\\n}\\\",\\n \\\"start_line\\\": 297,\\n \\\"end_line\\\": 378,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.txn\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH_2PHASE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.SYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.transaction.UserTransaction\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 301,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 301,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 308,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 308,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 313,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 313,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"begin\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 316,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 316,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"setInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 317,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 317,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getAccountData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 322,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 322,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 323,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 323,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"createOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 327,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 327,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 330,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 330,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 332,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 332,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 332,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 332,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"creditAccountBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 334,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 334,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"negate\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 334,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 334,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 335,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 335,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 340,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 340,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 340,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 340,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrderAsync\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 342,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 342,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"queueOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 344,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 344,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.jms.JMSException\\\"\\n ],\\n \\\"start_line\\\": 347,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 347,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"cancelOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 350,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 350,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 350,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 350,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 357,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 357,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 360,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 360,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"setInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 361,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 361,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 364,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 364,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 367,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 367,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 368,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 368,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 369,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 369,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 371,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 371,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 374,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 374,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"getConn()\\\",\\n \\\"start_line\\\": 301,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 301,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"total\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 304,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 304,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"name\\\": \\\"accountData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"getAccountData(conn, userID)\\\",\\n \\\"start_line\\\": 322,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 322,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"getQuoteData(conn, symbol)\\\",\\n \\\"start_line\\\": 323,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 323,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 324,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 324,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 330,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 330,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"orderFee\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderFee()\\\",\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderID()\\\",\\n \\\"start_line\\\": 335,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 335,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 10\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"queueOrder(Integer, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#queueOrder(Integer)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public void queueOrder(Integer orderID, boolean twoPhase) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"twoPhase\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:queueOrder - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", orderID);\\\\n try (JMSContext context = queueConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"neworder\\\\\\\");\\\\n message.setIntProperty(\\\\\\\"orderID\\\\\\\", orderID.intValue());\\\\n message.setBooleanProperty(\\\\\\\"twoPhase\\\\\\\", twoPhase);\\\\n message.setBooleanProperty(\\\\\\\"direct\\\\\\\", true);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"neworder: orderID=\\\\\\\" + orderID + \\\\\\\" runtimeMode=Direct twoPhase=\\\\\\\" + twoPhase);\\\\n context.createProducer().send(tradeBrokerQueue, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 487,\\n \\\"end_line\\\": 508,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeBrokerQueue\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.queueConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"javax.jms.QueueConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 491,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 491,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.QueueConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 494,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 494,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 495,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 495,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 497,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 497,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setIntProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 498,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 498,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 498,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 498,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"setBooleanProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 499,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 499,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setBooleanProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 500,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 500,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 501,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 501,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 501,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 501,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 502,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 502,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Queue\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 504,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 504,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 504,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 504,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"queueConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 494,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 494,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 495,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 495,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"completeOrder(Connection, Integer)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private OrderDataBean completeOrder(Connection conn, Integer orderID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n //conn = getConn();\\\\n OrderDataBean orderData = null;\\\\n Log.trace(\\\\\\\"TradeDirect:completeOrderInternal - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", orderID);\\\\n PreparedStatement stmt = getStatement(conn, getOrderSQL);\\\\n stmt.setInt(1, orderID.intValue());\\\\n ResultSet rs = stmt.executeQuery();\\\\n if (!rs.next()) {\\\\n Log.error(\\\\\\\"TradeDirect:completeOrder -- unable to find order: \\\\\\\" + orderID);\\\\n stmt.close();\\\\n return orderData;\\\\n }\\\\n orderData = getOrderDataFromResultSet(rs);\\\\n String orderType = orderData.getOrderType();\\\\n String orderStatus = orderData.getOrderStatus();\\\\n // if (order.isCompleted())\\\\n if ((orderStatus.compareToIgnoreCase(\\\\\\\"completed\\\\\\\") == 0) || (orderStatus.compareToIgnoreCase(\\\\\\\"alertcompleted\\\\\\\") == 0) || (orderStatus.compareToIgnoreCase(\\\\\\\"cancelled\\\\\\\") == 0)) {\\\\n throw new Exception(\\\\\\\"TradeDirect:completeOrder -- attempt to complete Order that is already completed\\\\\\\");\\\\n }\\\\n int accountID = rs.getInt(\\\\\\\"account_accountID\\\\\\\");\\\\n String quoteID = rs.getString(\\\\\\\"quote_symbol\\\\\\\");\\\\n int holdingID = rs.getInt(\\\\\\\"holding_holdingID\\\\\\\");\\\\n BigDecimal price = orderData.getPrice();\\\\n double quantity = orderData.getQuantity();\\\\n // get the data for the account and quote\\\\n // the holding will be created for a buy or extracted for a sell\\\\n /*\\\\n * Use the AccountID and Quote Symbol from the Order AccountDataBean\\\\n * accountData = getAccountData(accountID, conn); QuoteDataBean\\\\n * quoteData = getQuoteData(conn, quoteID);\\\\n */\\\\n String userID = getAccountProfileData(conn, new Integer(accountID)).getUserID();\\\\n HoldingDataBean holdingData = null;\\\\n Log.trace(\\\\\\\"TradeDirect:completeOrder--> Completing Order \\\\\\\" + orderData.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + orderData + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + accountID + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quoteID);\\\\n // if (order.isBuy())\\\\n if (orderType.compareToIgnoreCase(\\\\\\\"buy\\\\\\\") == 0) {\\\\n /*\\\\n * Complete a Buy operation - create a new Holding for the Account -\\\\n * deduct the Order cost from the Account balance\\\\n */\\\\n holdingData = createHolding(conn, accountID, quoteID, quantity, price);\\\\n updateOrderHolding(conn, orderID.intValue(), holdingData.getHoldingID().intValue());\\\\n updateOrderStatus(conn, orderData.getOrderID(), \\\\\\\"closed\\\\\\\");\\\\n updateQuotePriceVolume(orderData.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), orderData.getQuantity());\\\\n }\\\\n // if (order.isSell()) {\\\\n if (orderType.compareToIgnoreCase(\\\\\\\"sell\\\\\\\") == 0) {\\\\n /*\\\\n * Complete a Sell operation - remove the Holding from the Account -\\\\n * deposit the Order proceeds to the Account balance\\\\n */\\\\n holdingData = getHoldingData(conn, holdingID);\\\\n if (holdingData == null) {\\\\n Log.debug(\\\\\\\"TradeDirect:completeOrder:sell -- user: \\\\\\\" + userID + \\\\\\\" already sold holding: \\\\\\\" + holdingID);\\\\n updateOrderStatus(conn, orderData.getOrderID(), \\\\\\\"cancelled\\\\\\\");\\\\n } else {\\\\n removeHolding(conn, holdingID, orderID.intValue());\\\\n updateOrderStatus(conn, orderData.getOrderID(), \\\\\\\"closed\\\\\\\");\\\\n updateQuotePriceVolume(orderData.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), orderData.getQuantity());\\\\n }\\\\n }\\\\n Log.trace(\\\\\\\"TradeDirect:completeOrder--> Completed Order \\\\\\\" + orderData.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + orderData + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + accountID + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quoteID + \\\\\\\"\\\\\\\\n\\\\\\\\t Holding info: \\\\\\\" + holdingData);\\\\n stmt.close();\\\\n commit(conn);\\\\n return orderData;\\\\n}\\\",\\n \\\"start_line\\\": 551,\\n \\\"end_line\\\": 646,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getOrderSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 95\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 558,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 558,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 559,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 559,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 559,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 559,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 561,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 561,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 563,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 563,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 564,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 564,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 565,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 565,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 568,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 568,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderType\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 570,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 570,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 571,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 571,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 574,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 574,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 574,\\n \\\"start_column\\\": 65,\\n \\\"end_line\\\": 574,\\n \\\"end_column\\\": 113\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 575,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 575,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 579,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 579,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 580,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 580,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 581,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 581,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 583,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 583,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 584,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 584,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getUserID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 594,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 594,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"method_name\\\": \\\"getAccountProfileData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 594,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 594,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 599,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 600,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 599,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 599,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 604,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 604,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"createHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 610,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 610,\\n \\\"end_column\\\": 76\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 88\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 612,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 612,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 612,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 612,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 118\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 53,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 92\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 95,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 117\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 617,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 617,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 622,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 622,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 624,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 624,\\n \\\"end_column\\\": 110\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 625,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 625,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 625,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 625,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"removeHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 627,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 627,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 627,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 627,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 628,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 628,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 628,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 628,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 120\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 94\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 97,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 119\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 636,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 637,\\n \\\"end_column\\\": 92\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 636,\\n \\\"start_column\\\": 65,\\n \\\"end_line\\\": 636,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 639,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 639,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 641,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 641,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 553,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 553,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getOrderSQL)\\\",\\n \\\"start_line\\\": 558,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 558,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 561,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 561,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderType()\\\",\\n \\\"start_line\\\": 570,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 570,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"name\\\": \\\"orderStatus\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderStatus()\\\",\\n \\\"start_line\\\": 571,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 571,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"name\\\": \\\"accountID\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"account_accountID\\\\\\\")\\\",\\n \\\"start_line\\\": 579,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 579,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"name\\\": \\\"quoteID\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"rs.getString(\\\\\\\"quote_symbol\\\\\\\")\\\",\\n \\\"start_line\\\": 580,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 580,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"holding_holdingID\\\\\\\")\\\",\\n \\\"start_line\\\": 581,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 581,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"orderData.getPrice()\\\",\\n \\\"start_line\\\": 583,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 583,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"orderData.getQuantity()\\\",\\n \\\"start_line\\\": 584,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 584,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"userID\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"getAccountProfileData(conn, new Integer(accountID)).getUserID()\\\",\\n \\\"start_line\\\": 594,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 594,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 596,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 596,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 8\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 83,\\n \\\"end_line\\\": 85,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 84,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 84,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getOrderType()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getOrderType()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return orderType;\\\\n}\\\",\\n \\\"start_line\\\": 184,\\n \\\"end_line\\\": 186,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.orderType\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toString()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toString()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"Order \\\\\\\" + getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t orderType: \\\\\\\" + getOrderType() + \\\\\\\"\\\\\\\\n\\\\\\\\t orderStatus: \\\\\\\" + getOrderStatus() + \\\\\\\"\\\\\\\\n\\\\\\\\t openDate: \\\\\\\" + getOpenDate() + \\\\\\\"\\\\\\\\n\\\\\\\\t completionDate: \\\\\\\" + getCompletionDate() + \\\\\\\"\\\\\\\\n\\\\\\\\t quantity: \\\\\\\" + getQuantity() + \\\\\\\"\\\\\\\\n\\\\\\\\t price: \\\\\\\" + getPrice() + \\\\\\\"\\\\\\\\n\\\\\\\\t orderFee: \\\\\\\" + getOrderFee() + \\\\\\\"\\\\\\\\n\\\\\\\\t symbol: \\\\\\\" + getSymbol();\\\\n}\\\",\\n \\\"start_line\\\": 158,\\n \\\"end_line\\\": 163,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 160,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 160,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderType\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 160,\\n \\\"start_column\\\": 68,\\n \\\"end_line\\\": 160,\\n \\\"end_column\\\": 81\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 160,\\n \\\"start_column\\\": 111,\\n \\\"end_line\\\": 160,\\n \\\"end_column\\\": 126\\n },\\n {\\n \\\"method_name\\\": \\\"getOpenDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 161,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 161,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 161,\\n \\\"start_column\\\": 61,\\n \\\"end_line\\\": 161,\\n \\\"end_column\\\": 79\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 161,\\n \\\"start_column\\\": 109,\\n \\\"end_line\\\": 161,\\n \\\"end_column\\\": 121\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 162,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 162,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 162,\\n \\\"start_column\\\": 58,\\n \\\"end_line\\\": 162,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 162,\\n \\\"start_column\\\": 100,\\n \\\"end_line\\\": 162,\\n \\\"end_column\\\": 110\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getOrderType()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getOrderType()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return orderType;\\\\n}\\\",\\n \\\"start_line\\\": 184,\\n \\\"end_line\\\": 186,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.orderType\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toHTML()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toHTML()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"
Order \\\\\\\" + getOrderID() + \\\\\\\"\\\\\\\" + \\\\\\\" orderType: \\\\\\\" + getOrderType() + \\\\\\\"\\\\\\\" + \\\\\\\" orderStatus: \\\\\\\" + getOrderStatus() + \\\\\\\"\\\\\\\" + \\\\\\\" openDate: \\\\\\\" + getOpenDate() + \\\\\\\"\\\\\\\" + \\\\\\\" completionDate: \\\\\\\" + getCompletionDate() + \\\\\\\"\\\\\\\" + \\\\\\\" quantity: \\\\\\\" + getQuantity() + \\\\\\\"\\\\\\\" + \\\\\\\" price: \\\\\\\" + getPrice() + \\\\\\\"\\\\\\\" + \\\\\\\" orderFee: \\\\\\\" + getOrderFee() + \\\\\\\"\\\\\\\" + \\\\\\\" symbol: \\\\\\\" + getSymbol() + \\\\\\\"\\\\\\\";\\\\n}\\\",\\n \\\"start_line\\\": 165,\\n \\\"end_line\\\": 170,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 166,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 166,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderType\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 166,\\n \\\"start_column\\\": 84,\\n \\\"end_line\\\": 166,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 166,\\n \\\"start_column\\\": 137,\\n \\\"end_line\\\": 166,\\n \\\"end_column\\\": 152\\n },\\n {\\n \\\"method_name\\\": \\\"getOpenDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 167,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 167,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"getCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 167,\\n \\\"start_column\\\": 107,\\n \\\"end_line\\\": 167,\\n \\\"end_column\\\": 125\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 168,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 168,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 168,\\n \\\"start_column\\\": 97,\\n \\\"end_line\\\": 168,\\n \\\"end_column\\\": 106\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 168,\\n \\\"start_column\\\": 146,\\n \\\"end_line\\\": 168,\\n \\\"end_column\\\": 158\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 169,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 169,\\n \\\"end_column\\\": 65\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getClosedOrders(String)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#getClosedOrders(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public Collection getClosedOrders(String userID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Collection orderDataBeans = new ArrayList();\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:getClosedOrders - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID);\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, getClosedOrdersSQL);\\\\n stmt.setString(1, userID);\\\\n ResultSet rs = stmt.executeQuery();\\\\n while (rs.next()) {\\\\n OrderDataBean orderData = getOrderDataFromResultSet(rs);\\\\n orderData.setOrderStatus(\\\\\\\"completed\\\\\\\");\\\\n updateOrderStatus(conn, orderData.getOrderID(), orderData.getOrderStatus());\\\\n orderDataBeans.add(orderData);\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getOrders -- error getting user orders\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderDataBeans;\\\\n}\\\",\\n \\\"start_line\\\": 801,\\n \\\"end_line\\\": 833,\\n \\\"return_type\\\": \\\"java.util.Collection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getClosedOrdersSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 807,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 807,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 810,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 810,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 811,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 811,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 812,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 812,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 814,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 814,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 816,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 816,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 817,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 817,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 818,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 818,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 82\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 820,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 820,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 824,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 824,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 825,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 825,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 827,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 827,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 828,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 828,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 830,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 830,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"orderDataBeans\\\",\\n \\\"type\\\": \\\"java.util.Collection\\\",\\n \\\"initializer\\\": \\\"new ArrayList()\\\",\\n \\\"start_line\\\": 803,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 803,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 804,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 804,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getClosedOrdersSQL)\\\",\\n \\\"start_line\\\": 811,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 811,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 814,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 814,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"getOrderDataFromResultSet(rs)\\\",\\n \\\"start_line\\\": 817,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 817,\\n \\\"end_column\\\": 63\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateOrderStatus(Connection, Integer, String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void updateOrderStatus(Connection conn, Integer orderID, String status) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"status\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n PreparedStatement stmt = getStatement(conn, updateOrderStatusSQL);\\\\n stmt.setString(1, status);\\\\n stmt.setTimestamp(2, new Timestamp(System.currentTimeMillis()));\\\\n stmt.setInt(3, orderID.intValue());\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n}\\\",\\n \\\"start_line\\\": 1260,\\n \\\"end_line\\\": 1268,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.updateOrderStatusSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.System\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1261,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1261,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1263,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1263,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 1264,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1264,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1264,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 1264,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1265,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1265,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1265,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 1265,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1266,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1266,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1267,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1267,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, updateOrderStatusSQL)\\\",\\n \\\"start_line\\\": 1261,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1261,\\n \\\"end_column\\\": 69\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(Connection, int, String, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(Connection conn, int accountID, String symbol, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"accountID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp purchaseDate = new Timestamp(System.currentTimeMillis());\\\\n PreparedStatement stmt = getStatement(conn, createHoldingSQL);\\\\n Integer holdingID = KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn());\\\\n stmt.setInt(1, holdingID.intValue());\\\\n stmt.setTimestamp(2, purchaseDate);\\\\n stmt.setBigDecimal(3, purchasePrice);\\\\n stmt.setDouble(4, quantity);\\\\n stmt.setString(5, symbol);\\\\n stmt.setInt(6, accountID);\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n return getHoldingData(conn, holdingID.intValue());\\\\n}\\\",\\n \\\"start_line\\\": 681,\\n \\\"end_line\\\": 698,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.createHoldingSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"java.lang.System\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getNextID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 81,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 96\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 688,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 688,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 689,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 689,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setDouble\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 690,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 690,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 691,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 691,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 692,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 692,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 693,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 693,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 695,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 695,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"purchaseDate\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(System.currentTimeMillis())\\\",\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, createHoldingSQL)\\\",\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn())\\\",\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(Connection, int, String, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(Connection conn, int accountID, String symbol, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"accountID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp purchaseDate = new Timestamp(System.currentTimeMillis());\\\\n PreparedStatement stmt = getStatement(conn, createHoldingSQL);\\\\n Integer holdingID = KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn());\\\\n stmt.setInt(1, holdingID.intValue());\\\\n stmt.setTimestamp(2, purchaseDate);\\\\n stmt.setBigDecimal(3, purchasePrice);\\\\n stmt.setDouble(4, quantity);\\\\n stmt.setString(5, symbol);\\\\n stmt.setInt(6, accountID);\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n return getHoldingData(conn, holdingID.intValue());\\\\n}\\\",\\n \\\"start_line\\\": 681,\\n \\\"end_line\\\": 698,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.createHoldingSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"java.lang.System\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getNextID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 81,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 96\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 688,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 688,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 689,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 689,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setDouble\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 690,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 690,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 691,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 691,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 692,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 692,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 693,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 693,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 695,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 695,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"purchaseDate\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(System.currentTimeMillis())\\\",\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, createHoldingSQL)\\\",\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn())\\\",\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getNextID(Connection, String, boolean, boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\",\\n \\\"synchronized\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public static synchronized Integer getNextID(Connection conn, String keyName, boolean inSession, boolean inGlobalTxn) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"keyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"inSession\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"inGlobalTxn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Integer nextID = null;\\\\n // First verify we have allocated a block of keys\\\\n // for this key name\\\\n // Then verify the allocated block has not been depleted\\\\n // allocate a new block if necessary\\\\n if (keyMap.containsKey(keyName) == false) {\\\\n allocNewBlock(conn, keyName, inSession, inGlobalTxn);\\\\n }\\\\n Collection> block = keyMap.get(keyName);\\\\n Iterator> ids = block.iterator();\\\\n if (ids.hasNext() == false) {\\\\n ids = allocNewBlock(conn, keyName, inSession, inGlobalTxn).iterator();\\\\n }\\\\n // get and return a new unique key\\\\n nextID = (Integer) ids.next();\\\\n Log.trace(\\\\\\\"KeySequenceDirect:getNextID inSession(\\\\\\\" + inSession + \\\\\\\") - return new PK ID for Entity type: \\\\\\\" + keyName + \\\\\\\" ID=\\\\\\\" + nextID);\\\\n return nextID;\\\\n}\\\",\\n \\\"start_line\\\": 33,\\n \\\"end_line\\\": 55,\\n \\\"return_type\\\": \\\"java.lang.Integer\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Collection>\\\",\\n \\\"java.util.Iterator>\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect.keyMap\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection>\\\",\\n \\\"java.util.HashMap>\\\",\\n \\\"java.util.Iterator>\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"containsKey\\\",\\n \\\"declaring_type\\\": \\\"java.util.HashMap>\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 39,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 39,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"allocNewBlock\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 40,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 40,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"get\\\",\\n \\\"declaring_type\\\": \\\"java.util.HashMap>\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 42,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 42,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 44,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 44,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 45,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 45,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 46,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 46,\\n \\\"end_column\\\": 81\\n },\\n {\\n \\\"method_name\\\": \\\"allocNewBlock\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 46,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 46,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 49,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 49,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 52,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 52,\\n \\\"end_column\\\": 142\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"nextID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 34,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 34,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"name\\\": \\\"block\\\",\\n \\\"type\\\": \\\"java.util.Collection>\\\",\\n \\\"initializer\\\": \\\"keyMap.get(keyName)\\\",\\n \\\"start_line\\\": 42,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 42,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"ids\\\",\\n \\\"type\\\": \\\"java.util.Iterator>\\\",\\n \\\"initializer\\\": \\\"block.iterator()\\\",\\n \\\"start_line\\\": 44,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 44,\\n \\\"end_column\\\": 42\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getHoldingData(Connection, int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean getHoldingData(Connection conn, int holdingID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n HoldingDataBean holdingData = null;\\\\n PreparedStatement stmt = getStatement(conn, getHoldingSQL);\\\\n stmt.setInt(1, holdingID);\\\\n ResultSet rs = stmt.executeQuery();\\\\n if (!rs.next()) {\\\\n // already sold\\\\n Log.debug(\\\\\\\"TradeDirect:getHoldingData -- no results -- holdingID=\\\\\\\" + holdingID);\\\\n } else {\\\\n holdingData = getHoldingDataFromResultSet(rs);\\\\n }\\\\n stmt.close();\\\\n return holdingData;\\\\n}\\\",\\n \\\"start_line\\\": 1130,\\n \\\"end_line\\\": 1144,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getHoldingSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1132,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1132,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1133,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1133,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1134,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 1134,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1135,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 1135,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1137,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1137,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 1139,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 1139,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1142,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1142,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1131,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 1131,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getHoldingSQL)\\\",\\n \\\"start_line\\\": 1132,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1132,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 1134,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1134,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"debug(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void debug(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.INFO, message);\\\\n}\\\",\\n \\\"start_line\\\": 123,\\n \\\"end_line\\\": 125,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"java.util.logging.Level.INFO\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 124,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 124,\\n \\\"end_column\\\": 31\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(AccountDataBean, QuoteDataBean, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(AccountDataBean account, QuoteDataBean quote, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n HoldingDataBean newHolding = new HoldingDataBean(quantity, purchasePrice, new Timestamp(System.currentTimeMillis()), account, quote);\\\\n entityManager.persist(newHolding);\\\\n return newHolding;\\\\n}\\\",\\n \\\"start_line\\\": 554,\\n \\\"end_line\\\": 558,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.System\\\",\\n \\\"javax.persistence.EntityManager\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 97,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 122\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 556,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 556,\\n \\\"end_column\\\": 41\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"newHolding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"new HoldingDataBean(quantity, purchasePrice, new Timestamp(System.currentTimeMillis()), account, quote)\\\",\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 140\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"HoldingDataBean(double, BigDecimal, Date, AccountDataBean, QuoteDataBean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public HoldingDataBean(double quantity, BigDecimal purchasePrice, Date purchaseDate, AccountDataBean account, QuoteDataBean quote)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.util.Date\\\",\\n \\\"name\\\": \\\"purchaseDate\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n setQuantity(quantity);\\\\n setPurchasePrice(purchasePrice);\\\\n setPurchaseDate(purchaseDate);\\\\n setAccount(account);\\\\n setQuote(quote);\\\\n}\\\",\\n \\\"start_line\\\": 92,\\n \\\"end_line\\\": 98,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.quantity\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.purchasePrice\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.account\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.purchaseDate\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.quote\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setQuantity\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 93,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 93,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setPurchasePrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setPurchaseDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.Date\\\"\\n ],\\n \\\"start_line\\\": 95,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 95,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"setAccount\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\"\\n ],\\n \\\"start_line\\\": 96,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 96,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"setQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 97,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 97,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(AccountDataBean, QuoteDataBean, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(AccountDataBean account, QuoteDataBean quote, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n HoldingDataBean newHolding = new HoldingDataBean(quantity, purchasePrice, new Timestamp(System.currentTimeMillis()), account, quote);\\\\n entityManager.persist(newHolding);\\\\n return newHolding;\\\\n}\\\",\\n \\\"start_line\\\": 554,\\n \\\"end_line\\\": 558,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.System\\\",\\n \\\"javax.persistence.EntityManager\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 97,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 122\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 556,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 556,\\n \\\"end_column\\\": 41\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"newHolding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"new HoldingDataBean(quantity, purchasePrice, new Timestamp(System.currentTimeMillis()), account, quote)\\\",\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 140\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"completeOrder(Integer, boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"twoPhase\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order = entityManager.find(OrderDataBean.class, orderID);\\\\n if (order == null) {\\\\n System.out.println(\\\\\\\"error\\\\\\\");\\\\n throw new EJBException(\\\\\\\"Error: attempt to complete Order that is null\\\\\\\\n\\\\\\\" + order);\\\\n }\\\\n order.getQuote();\\\\n if (order.isCompleted()) {\\\\n throw new EJBException(\\\\\\\"Error: attempt to complete Order that is already completed\\\\\\\\n\\\\\\\" + order);\\\\n }\\\\n AccountDataBean account = order.getAccount();\\\\n QuoteDataBean quote = order.getQuote();\\\\n HoldingDataBean holding = order.getHolding();\\\\n BigDecimal price = order.getPrice();\\\\n double quantity = order.getQuantity();\\\\n if (order.isBuy()) {\\\\n /*\\\\n * Complete a Buy operation - create a new Holding for the Account -\\\\n * deduct the Order cost from the Account balance\\\\n */\\\\n HoldingDataBean newHolding = createHolding(account, quote, quantity, price);\\\\n order.setHolding(newHolding);\\\\n order.setOrderStatus(\\\\\\\"closed\\\\\\\");\\\\n order.setCompletionDate(new java.sql.Timestamp(System.currentTimeMillis()));\\\\n updateQuotePriceVolume(quote.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), quantity);\\\\n }\\\\n if (order.isSell()) {\\\\n /*\\\\n * Complete a Sell operation - remove the Holding from the Account -\\\\n * deposit the Order proceeds to the Account balance\\\\n */\\\\n if (holding == null) {\\\\n Log.debug(\\\\\\\"TradeSLSBBean:completeOrder -- Unable to sell order \\\\\\\" + order.getOrderID() + \\\\\\\" holding already sold\\\\\\\");\\\\n order.cancel();\\\\n //throw new EJBException(\\\\\\\"TradeSLSBBean:completeOrder -- Unable to sell order \\\\\\\" + order.getOrderID() + \\\\\\\" holding already sold\\\\\\\");\\\\n } else {\\\\n entityManager.remove(holding);\\\\n order.setHolding(null);\\\\n order.setOrderStatus(\\\\\\\"closed\\\\\\\");\\\\n order.setCompletionDate(new java.sql.Timestamp(System.currentTimeMillis()));\\\\n updateQuotePriceVolume(quote.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), quantity);\\\\n }\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:completeOrder--> Completed Order \\\\\\\" + order.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + order + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + account + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quote + \\\\\\\"\\\\\\\\n\\\\\\\\t Holding info: \\\\\\\" + holding);\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 226,\\n \\\"end_line\\\": 282,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.lang.System.out\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.io.PrintStream\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintStream\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 231,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 231,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 235,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 235,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"isCompleted\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 237,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 237,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getAccount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 241,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 241,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 242,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 242,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 243,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 243,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 244,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 244,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 245,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 245,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"isBuy\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"createHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 253,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 253,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 254,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 254,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 255,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 255,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 60,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 94\\n },\\n {\\n \\\"method_name\\\": \\\"isSell\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 260,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 260,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 128\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 84,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"method_name\\\": \\\"cancel\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 267,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 267,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 270,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 270,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 271,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 271,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 272,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 272,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 91\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 64,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 109\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 59,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 278,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 279,\\n \\\"end_column\\\": 76\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 278,\\n \\\"start_column\\\": 71,\\n \\\"end_line\\\": 278,\\n \\\"end_column\\\": 88\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(OrderDataBean.class, orderID)\\\",\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"name\\\": \\\"account\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"order.getAccount()\\\",\\n \\\"start_line\\\": 241,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 241,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"order.getQuote()\\\",\\n \\\"start_line\\\": 242,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 242,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"holding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"order.getHolding()\\\",\\n \\\"start_line\\\": 243,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 243,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"order.getPrice()\\\",\\n \\\"start_line\\\": 244,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 244,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"order.getQuantity()\\\",\\n \\\"start_line\\\": 245,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 245,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"newHolding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"createHolding(account, quote, quantity, price)\\\",\\n \\\"start_line\\\": 253,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 253,\\n \\\"end_column\\\": 87\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 6\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"completeOrder(Integer, boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"twoPhase\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order = entityManager.find(OrderDataBean.class, orderID);\\\\n if (order == null) {\\\\n System.out.println(\\\\\\\"error\\\\\\\");\\\\n throw new EJBException(\\\\\\\"Error: attempt to complete Order that is null\\\\\\\\n\\\\\\\" + order);\\\\n }\\\\n order.getQuote();\\\\n if (order.isCompleted()) {\\\\n throw new EJBException(\\\\\\\"Error: attempt to complete Order that is already completed\\\\\\\\n\\\\\\\" + order);\\\\n }\\\\n AccountDataBean account = order.getAccount();\\\\n QuoteDataBean quote = order.getQuote();\\\\n HoldingDataBean holding = order.getHolding();\\\\n BigDecimal price = order.getPrice();\\\\n double quantity = order.getQuantity();\\\\n if (order.isBuy()) {\\\\n /*\\\\n * Complete a Buy operation - create a new Holding for the Account -\\\\n * deduct the Order cost from the Account balance\\\\n */\\\\n HoldingDataBean newHolding = createHolding(account, quote, quantity, price);\\\\n order.setHolding(newHolding);\\\\n order.setOrderStatus(\\\\\\\"closed\\\\\\\");\\\\n order.setCompletionDate(new java.sql.Timestamp(System.currentTimeMillis()));\\\\n updateQuotePriceVolume(quote.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), quantity);\\\\n }\\\\n if (order.isSell()) {\\\\n /*\\\\n * Complete a Sell operation - remove the Holding from the Account -\\\\n * deposit the Order proceeds to the Account balance\\\\n */\\\\n if (holding == null) {\\\\n Log.debug(\\\\\\\"TradeSLSBBean:completeOrder -- Unable to sell order \\\\\\\" + order.getOrderID() + \\\\\\\" holding already sold\\\\\\\");\\\\n order.cancel();\\\\n //throw new EJBException(\\\\\\\"TradeSLSBBean:completeOrder -- Unable to sell order \\\\\\\" + order.getOrderID() + \\\\\\\" holding already sold\\\\\\\");\\\\n } else {\\\\n entityManager.remove(holding);\\\\n order.setHolding(null);\\\\n order.setOrderStatus(\\\\\\\"closed\\\\\\\");\\\\n order.setCompletionDate(new java.sql.Timestamp(System.currentTimeMillis()));\\\\n updateQuotePriceVolume(quote.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), quantity);\\\\n }\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:completeOrder--> Completed Order \\\\\\\" + order.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + order + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + account + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quote + \\\\\\\"\\\\\\\\n\\\\\\\\t Holding info: \\\\\\\" + holding);\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 226,\\n \\\"end_line\\\": 282,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.lang.System.out\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.io.PrintStream\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintStream\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 231,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 231,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 235,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 235,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"isCompleted\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 237,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 237,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getAccount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 241,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 241,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 242,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 242,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 243,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 243,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 244,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 244,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 245,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 245,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"isBuy\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"createHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 253,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 253,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 254,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 254,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 255,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 255,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 60,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 94\\n },\\n {\\n \\\"method_name\\\": \\\"isSell\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 260,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 260,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 128\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 84,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"method_name\\\": \\\"cancel\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 267,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 267,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 270,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 270,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 271,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 271,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 272,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 272,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 91\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 64,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 109\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 59,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 278,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 279,\\n \\\"end_column\\\": 76\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 278,\\n \\\"start_column\\\": 71,\\n \\\"end_line\\\": 278,\\n \\\"end_column\\\": 88\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(OrderDataBean.class, orderID)\\\",\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"name\\\": \\\"account\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"order.getAccount()\\\",\\n \\\"start_line\\\": 241,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 241,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"order.getQuote()\\\",\\n \\\"start_line\\\": 242,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 242,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"holding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"order.getHolding()\\\",\\n \\\"start_line\\\": 243,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 243,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"order.getPrice()\\\",\\n \\\"start_line\\\": 244,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 244,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"order.getQuantity()\\\",\\n \\\"start_line\\\": 245,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 245,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"newHolding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"createHolding(account, quote, quantity, price)\\\",\\n \\\"start_line\\\": 253,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 253,\\n \\\"end_column\\\": 87\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 6\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(AccountDataBean, QuoteDataBean, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(AccountDataBean account, QuoteDataBean quote, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n HoldingDataBean newHolding = new HoldingDataBean(quantity, purchasePrice, new Timestamp(System.currentTimeMillis()), account, quote);\\\\n entityManager.persist(newHolding);\\\\n return newHolding;\\\\n}\\\",\\n \\\"start_line\\\": 554,\\n \\\"end_line\\\": 558,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.System\\\",\\n \\\"javax.persistence.EntityManager\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 97,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 122\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 556,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 556,\\n \\\"end_column\\\": 41\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"newHolding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"new HoldingDataBean(quantity, purchasePrice, new Timestamp(System.currentTimeMillis()), account, quote)\\\",\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 140\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"QuoteDataBean()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n}\\\",\\n \\\"start_line\\\": 82,\\n \\\"end_line\\\": 83,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1, Object parm2)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm2\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\", \\\\\\\" + parm2 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 87,\\n \\\"end_line\\\": 89,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 88,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 53\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.FINE, message + \\\\\\\" threadID=\\\\\\\" + Thread.currentThread());\\\\n}\\\",\\n \\\"start_line\\\": 75,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Thread\\\",\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentThread\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Thread\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 71\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1, Object parm2)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm2\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\", \\\\\\\" + parm2 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 87,\\n \\\"end_line\\\": 89,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 88,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 53\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void publishQuotePriceChange(QuoteDataBean quote, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getPublishQuotePriceChange()) {\\\\n return;\\\\n }\\\\n try (JMSContext topicContext = topicConnectionFactory.createContext()) {\\\\n TextMessage message = topicContext.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quote.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quote.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quote.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quote.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quote.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quote.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quote.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quote.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quote.getPrice());\\\\n topicContext.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw new EJBException(e.getMessage(), e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 511,\\n \\\"end_line\\\": 538,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.tradeStreamerTopic\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.topicConnectionFactory\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 513,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 513,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 520,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 520,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 74\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 530,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 530,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 140\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 124,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 139\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"getMessage\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Exception\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 536,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 536,\\n \\\"end_column\\\": 50\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"topicContext\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"topicContext.createTextMessage()\\\",\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getSymbol()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getSymbol()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return symbol;\\\\n}\\\",\\n \\\"start_line\\\": 130,\\n \\\"end_line\\\": 132,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.symbol\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "3"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void publishQuotePriceChange(QuoteDataBean quote, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getPublishQuotePriceChange()) {\\\\n return;\\\\n }\\\\n try (JMSContext topicContext = topicConnectionFactory.createContext()) {\\\\n TextMessage message = topicContext.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quote.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quote.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quote.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quote.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quote.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quote.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quote.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quote.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quote.getPrice());\\\\n topicContext.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw new EJBException(e.getMessage(), e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 511,\\n \\\"end_line\\\": 538,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.tradeStreamerTopic\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.topicConnectionFactory\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 513,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 513,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 520,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 520,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 74\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 530,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 530,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 140\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 124,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 139\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"getMessage\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Exception\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 536,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 536,\\n \\\"end_column\\\": 50\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"topicContext\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"topicContext.createTextMessage()\\\",\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getCompanyName()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getCompanyName()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return companyName;\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 140,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"publishQuotePriceChange(QuoteDataBean, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void publishQuotePriceChange(QuoteDataBean quote, BigDecimal oldPrice, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getPublishQuotePriceChange()) {\\\\n return;\\\\n }\\\\n try (JMSContext topicContext = topicConnectionFactory.createContext()) {\\\\n TextMessage message = topicContext.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"updateQuote\\\\\\\");\\\\n message.setStringProperty(\\\\\\\"symbol\\\\\\\", quote.getSymbol());\\\\n message.setStringProperty(\\\\\\\"company\\\\\\\", quote.getCompanyName());\\\\n message.setStringProperty(\\\\\\\"price\\\\\\\", quote.getPrice().toString());\\\\n message.setStringProperty(\\\\\\\"oldPrice\\\\\\\", oldPrice.toString());\\\\n message.setStringProperty(\\\\\\\"open\\\\\\\", quote.getOpen().toString());\\\\n message.setStringProperty(\\\\\\\"low\\\\\\\", quote.getLow().toString());\\\\n message.setStringProperty(\\\\\\\"high\\\\\\\", quote.getHigh().toString());\\\\n message.setDoubleProperty(\\\\\\\"volume\\\\\\\", quote.getVolume());\\\\n message.setStringProperty(\\\\\\\"changeFactor\\\\\\\", changeFactor.toString());\\\\n message.setDoubleProperty(\\\\\\\"sharesTraded\\\\\\\", sharesTraded);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"Update Stock price for \\\\\\\" + quote.getSymbol() + \\\\\\\" old price = \\\\\\\" + oldPrice + \\\\\\\" new price = \\\\\\\" + quote.getPrice());\\\\n topicContext.createProducer().send(tradeStreamerTopic, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw new EJBException(e.getMessage(), e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 511,\\n \\\"end_line\\\": 538,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.tradeStreamerTopic\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.topicConnectionFactory\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 513,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 513,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TopicConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 520,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 520,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 521,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 521,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getCompanyName\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 522,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 522,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 74\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 523,\\n \\\"start_column\\\": 48,\\n \\\"end_line\\\": 523,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 524,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 524,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 525,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 525,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getLow\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 526,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 526,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"getHigh\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 527,\\n \\\"start_column\\\": 47,\\n \\\"end_line\\\": 527,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 528,\\n \\\"start_column\\\": 49,\\n \\\"end_line\\\": 528,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 529,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 529,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setDoubleProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 530,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 530,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 531,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 531,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 140\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 532,\\n \\\"start_column\\\": 124,\\n \\\"end_line\\\": 532,\\n \\\"end_column\\\": 139\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Topic\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 534,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 534,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"getMessage\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Exception\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 536,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 536,\\n \\\"end_column\\\": 50\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"topicContext\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"topicConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 517,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 517,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"topicContext.createTextMessage()\\\",\\n \\\"start_line\\\": 518,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 518,\\n \\\"end_column\\\": 66\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"add(QuoteDataBean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public boolean add(QuoteDataBean quoteData)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n int symbolNumber = new Integer(quoteData.getSymbol().substring(2));\\\\n if (symbolNumber < TradeConfig.getMAX_QUOTES() * TradeConfig.getListQuotePriceChangeFrequency() * 0.01) {\\\\n list.add(0, quoteData);\\\\n // Add stock, remove if needed\\\\n if (list.size() > maxSize) {\\\\n list.remove(maxSize);\\\\n }\\\\n quotePriceChangeEvent.fireAsync(\\\\\\\"quotePriceChange for symbol: \\\\\\\" + quoteData.getSymbol(), NotificationOptions.builder().setExecutor(mes).build());\\\\n }\\\\n return true;\\\\n}\\\",\\n \\\"start_line\\\": 52,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.maxSize\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.list\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.mes\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.quotePriceChangeEvent\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"java.util.List\\\",\\n \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.enterprise.event.Event\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"substring\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getMAX_QUOTES\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getListQuotePriceChangeFrequency\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 100\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 57,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 57,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"size\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 60,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 60,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 61,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 61,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"fireAsync\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.Event\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.enterprise.event.NotificationOptions\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 150\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 73,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 93\\n },\\n {\\n \\\"method_name\\\": \\\"build\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 149\\n },\\n {\\n \\\"method_name\\\": \\\"setExecutor\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.enterprise.concurrent.ManagedExecutorService\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"builder\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 124\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"symbolNumber\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"new Integer(quoteData.getSymbol().substring(2))\\\",\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 70\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getSymbol()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getSymbol()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return symbol;\\\\n}\\\",\\n \\\"start_line\\\": 130,\\n \\\"end_line\\\": 132,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.symbol\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "3"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"add(QuoteDataBean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public boolean add(QuoteDataBean quoteData)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n int symbolNumber = new Integer(quoteData.getSymbol().substring(2));\\\\n if (symbolNumber < TradeConfig.getMAX_QUOTES() * TradeConfig.getListQuotePriceChangeFrequency() * 0.01) {\\\\n list.add(0, quoteData);\\\\n // Add stock, remove if needed\\\\n if (list.size() > maxSize) {\\\\n list.remove(maxSize);\\\\n }\\\\n quotePriceChangeEvent.fireAsync(\\\\\\\"quotePriceChange for symbol: \\\\\\\" + quoteData.getSymbol(), NotificationOptions.builder().setExecutor(mes).build());\\\\n }\\\\n return true;\\\\n}\\\",\\n \\\"start_line\\\": 52,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.maxSize\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.list\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.mes\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.quotePriceChangeEvent\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"java.util.List\\\",\\n \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.enterprise.event.Event\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"substring\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getMAX_QUOTES\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getListQuotePriceChangeFrequency\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 100\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 57,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 57,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"size\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 60,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 60,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 61,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 61,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"fireAsync\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.Event\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.enterprise.event.NotificationOptions\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 150\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 73,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 93\\n },\\n {\\n \\\"method_name\\\": \\\"build\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 149\\n },\\n {\\n \\\"method_name\\\": \\\"setExecutor\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.enterprise.concurrent.ManagedExecutorService\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"builder\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 124\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"symbolNumber\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"new Integer(quoteData.getSymbol().substring(2))\\\",\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 70\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"completeOrder(Integer, boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"twoPhase\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order = entityManager.find(OrderDataBean.class, orderID);\\\\n if (order == null) {\\\\n System.out.println(\\\\\\\"error\\\\\\\");\\\\n throw new EJBException(\\\\\\\"Error: attempt to complete Order that is null\\\\\\\\n\\\\\\\" + order);\\\\n }\\\\n order.getQuote();\\\\n if (order.isCompleted()) {\\\\n throw new EJBException(\\\\\\\"Error: attempt to complete Order that is already completed\\\\\\\\n\\\\\\\" + order);\\\\n }\\\\n AccountDataBean account = order.getAccount();\\\\n QuoteDataBean quote = order.getQuote();\\\\n HoldingDataBean holding = order.getHolding();\\\\n BigDecimal price = order.getPrice();\\\\n double quantity = order.getQuantity();\\\\n if (order.isBuy()) {\\\\n /*\\\\n * Complete a Buy operation - create a new Holding for the Account -\\\\n * deduct the Order cost from the Account balance\\\\n */\\\\n HoldingDataBean newHolding = createHolding(account, quote, quantity, price);\\\\n order.setHolding(newHolding);\\\\n order.setOrderStatus(\\\\\\\"closed\\\\\\\");\\\\n order.setCompletionDate(new java.sql.Timestamp(System.currentTimeMillis()));\\\\n updateQuotePriceVolume(quote.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), quantity);\\\\n }\\\\n if (order.isSell()) {\\\\n /*\\\\n * Complete a Sell operation - remove the Holding from the Account -\\\\n * deposit the Order proceeds to the Account balance\\\\n */\\\\n if (holding == null) {\\\\n Log.debug(\\\\\\\"TradeSLSBBean:completeOrder -- Unable to sell order \\\\\\\" + order.getOrderID() + \\\\\\\" holding already sold\\\\\\\");\\\\n order.cancel();\\\\n //throw new EJBException(\\\\\\\"TradeSLSBBean:completeOrder -- Unable to sell order \\\\\\\" + order.getOrderID() + \\\\\\\" holding already sold\\\\\\\");\\\\n } else {\\\\n entityManager.remove(holding);\\\\n order.setHolding(null);\\\\n order.setOrderStatus(\\\\\\\"closed\\\\\\\");\\\\n order.setCompletionDate(new java.sql.Timestamp(System.currentTimeMillis()));\\\\n updateQuotePriceVolume(quote.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), quantity);\\\\n }\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:completeOrder--> Completed Order \\\\\\\" + order.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + order + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + account + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quote + \\\\\\\"\\\\\\\\n\\\\\\\\t Holding info: \\\\\\\" + holding);\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 226,\\n \\\"end_line\\\": 282,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.lang.System.out\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.io.PrintStream\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"println\\\",\\n \\\"declaring_type\\\": \\\"java.io.PrintStream\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 231,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 231,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 235,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 235,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"isCompleted\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 237,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 237,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getAccount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 241,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 241,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 242,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 242,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 243,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 243,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 244,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 244,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 245,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 245,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"isBuy\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 247,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 247,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"createHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 253,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 253,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 254,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 254,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 255,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 255,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 256,\\n \\\"start_column\\\": 60,\\n \\\"end_line\\\": 256,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 257,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 257,\\n \\\"end_column\\\": 94\\n },\\n {\\n \\\"method_name\\\": \\\"isSell\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 260,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 260,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 128\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 266,\\n \\\"start_column\\\": 84,\\n \\\"end_line\\\": 266,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"method_name\\\": \\\"cancel\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 267,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 267,\\n \\\"end_column\\\": 30\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 270,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 270,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 271,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 271,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 272,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 272,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 91\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 273,\\n \\\"start_column\\\": 64,\\n \\\"end_line\\\": 273,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 109\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 59,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 278,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 279,\\n \\\"end_column\\\": 76\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 278,\\n \\\"start_column\\\": 71,\\n \\\"end_line\\\": 278,\\n \\\"end_column\\\": 88\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(OrderDataBean.class, orderID)\\\",\\n \\\"start_line\\\": 228,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 228,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"name\\\": \\\"account\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"order.getAccount()\\\",\\n \\\"start_line\\\": 241,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 241,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"order.getQuote()\\\",\\n \\\"start_line\\\": 242,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 242,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"holding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"order.getHolding()\\\",\\n \\\"start_line\\\": 243,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 243,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"order.getPrice()\\\",\\n \\\"start_line\\\": 244,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 244,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"order.getQuantity()\\\",\\n \\\"start_line\\\": 245,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 245,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"newHolding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"createHolding(account, quote, quantity, price)\\\",\\n \\\"start_line\\\": 253,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 253,\\n \\\"end_column\\\": 87\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 6\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateQuotePriceVolume(String, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"changeFactor\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"sharesTraded\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if (!TradeConfig.getUpdateQuotePrices()) {\\\\n return new QuoteDataBean();\\\\n }\\\\n Log.trace(\\\\\\\"TradeSLSBBean:updateQuote\\\\\\\", symbol, changeFactor);\\\\n TypedQuery q = entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class);\\\\n q.setParameter(1, symbol);\\\\n QuoteDataBean quote = q.getSingleResult();\\\\n BigDecimal oldPrice = quote.getPrice();\\\\n BigDecimal openPrice = quote.getOpen();\\\\n if (oldPrice.equals(TradeConfig.PENNY_STOCK_PRICE)) {\\\\n changeFactor = TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER;\\\\n } else if (oldPrice.compareTo(TradeConfig.MAXIMUM_STOCK_PRICE) > 0) {\\\\n changeFactor = TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER;\\\\n }\\\\n BigDecimal newPrice = changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n quote.setPrice(newPrice);\\\\n quote.setChange(newPrice.subtract(openPrice).doubleValue());\\\\n quote.setVolume(quote.getVolume() + sharesTraded);\\\\n entityManager.merge(quote);\\\\n if (TradeConfig.getPublishQuotePriceChange()) {\\\\n publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);\\\\n }\\\\n recentQuotePriceChangeList.add(quote);\\\\n return quote;\\\\n}\\\",\\n \\\"start_line\\\": 375,\\n \\\"end_line\\\": 410,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_SPLIT_MULTIPLIER\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.MAXIMUM_STOCK_PRICE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.recentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.PENNY_STOCK_RECOVERY_MIRACLE_MULTIPLIER\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"javax.persistence.TypedQuery\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUpdateQuotePrices\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 377,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 377,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 381,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 381,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createNamedQuery\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Class\\\"\\n ],\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"setParameter\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 384,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 384,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"getSingleResult\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"getOpen\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"equals\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 390,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 390,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"compareTo\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 392,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 392,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 398,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 398,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 399,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 399,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getVolume\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 400,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 400,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"merge\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 401,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 401,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getPublishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 403,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 403,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"publishQuotePriceChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 407,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 407,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"q\\\",\\n \\\"type\\\": \\\"javax.persistence.TypedQuery\\\",\\n \\\"initializer\\\": \\\"entityManager.createNamedQuery(\\\\\\\"quoteejb.quoteForUpdate\\\\\\\", QuoteDataBean.class)\\\",\\n \\\"start_line\\\": 383,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 383,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"q.getSingleResult()\\\",\\n \\\"start_line\\\": 385,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 385,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"oldPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"openPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getOpen()\\\",\\n \\\"start_line\\\": 388,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 388,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"name\\\": \\\"newPrice\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"changeFactor.multiply(oldPrice).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 396,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 396,\\n \\\"end_column\\\": 99\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "3"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createOrder(AccountDataBean, QuoteDataBean, HoldingDataBean, String, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean createOrder(AccountDataBean account, QuoteDataBean quote, HoldingDataBean holding, String orderType, double quantity)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"name\\\": \\\"holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order;\\\\n try {\\\\n order = new OrderDataBean(orderType, \\\\\\\"open\\\\\\\", new Timestamp(System.currentTimeMillis()), null, quantity, quote.getPrice().setScale(FinancialUtils.SCALE, FinancialUtils.ROUND), TradeConfig.getOrderFee(orderType), account, quote, holding);\\\\n entityManager.persist(order);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. The stock/quote may not exist in the database.\\\\\\\", e);\\\\n throw new EJBException(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. Check that the symbol exists in the database.\\\\\\\", e);\\\\n }\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 540,\\n \\\"end_line\\\": 552,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.ROUND\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.SCALE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 72,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 132\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 545,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 546,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 546,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 548,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 548,\\n \\\"end_column\\\": 127\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 541,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 541,\\n \\\"end_column\\\": 27\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"OrderDataBean(String, String, Date, Date, double, BigDecimal, BigDecimal, AccountDataBean, QuoteDataBean, HoldingDataBean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean(String orderType, String orderStatus, Date openDate, Date completionDate, double quantity, BigDecimal price, BigDecimal orderFee, AccountDataBean account, QuoteDataBean quote, HoldingDataBean holding)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderStatus\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.util.Date\\\",\\n \\\"name\\\": \\\"openDate\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.util.Date\\\",\\n \\\"name\\\": \\\"completionDate\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"orderFee\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"name\\\": \\\"holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n setOrderType(orderType);\\\\n setOrderStatus(orderStatus);\\\\n setOpenDate(openDate);\\\\n setCompletionDate(completionDate);\\\\n setQuantity(quantity);\\\\n setPrice(price);\\\\n setOrderFee(orderFee);\\\\n setAccount(account);\\\\n setQuote(quote);\\\\n setHolding(holding);\\\\n}\\\",\\n \\\"start_line\\\": 138,\\n \\\"end_line\\\": 150,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.price\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.orderFee\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.holding\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.quantity\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.quote\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.completionDate\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.orderStatus\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.account\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.orderType\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.openDate\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setOrderType\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 140,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 140,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 141,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 141,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"method_name\\\": \\\"setOpenDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.Date\\\"\\n ],\\n \\\"start_line\\\": 142,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 142,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setCompletionDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.Date\\\"\\n ],\\n \\\"start_line\\\": 143,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 143,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"setQuantity\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 144,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 144,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 145,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 145,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderFee\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 146,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 146,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setAccount\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\"\\n ],\\n \\\"start_line\\\": 147,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 147,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"setQuote\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 148,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 148,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"setHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\"\\n ],\\n \\\"start_line\\\": 149,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 149,\\n \\\"end_column\\\": 27\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getOrderFee(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal getOrderFee(String orderType)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n if ((orderType.compareToIgnoreCase(\\\\\\\"BUY\\\\\\\") == 0) || (orderType.compareToIgnoreCase(\\\\\\\"SELL\\\\\\\") == 0)) {\\\\n return orderFee;\\\\n }\\\\n return cashFee;\\\\n}\\\",\\n \\\"start_line\\\": 273,\\n \\\"end_line\\\": 280,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.orderFee\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.cashFee\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 274,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 274,\\n \\\"end_column\\\": 93\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createOrder(AccountDataBean, QuoteDataBean, HoldingDataBean, String, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean createOrder(AccountDataBean account, QuoteDataBean quote, HoldingDataBean holding, String orderType, double quantity)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"name\\\": \\\"holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order;\\\\n try {\\\\n order = new OrderDataBean(orderType, \\\\\\\"open\\\\\\\", new Timestamp(System.currentTimeMillis()), null, quantity, quote.getPrice().setScale(FinancialUtils.SCALE, FinancialUtils.ROUND), TradeConfig.getOrderFee(orderType), account, quote, holding);\\\\n entityManager.persist(order);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. The stock/quote may not exist in the database.\\\\\\\", e);\\\\n throw new EJBException(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. Check that the symbol exists in the database.\\\\\\\", e);\\\\n }\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 540,\\n \\\"end_line\\\": 552,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.ROUND\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.SCALE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 72,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 132\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 545,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 546,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 546,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 548,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 548,\\n \\\"end_column\\\": 127\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 541,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 541,\\n \\\"end_column\\\": 27\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getAccountID()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public Integer getAccountID()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return accountID;\\\\n}\\\",\\n \\\"start_line\\\": 157,\\n \\\"end_line\\\": 159,\\n \\\"return_type\\\": \\\"java.lang.Integer\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean.accountID\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toString()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toString()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"\\\\\\\\n\\\\\\\\tAccount Data for account: \\\\\\\" + getAccountID() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t loginCount:\\\\\\\" + getLoginCount() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t logoutCount:\\\\\\\" + getLogoutCount() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t lastLogin:\\\\\\\" + getLastLogin() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t creationDate:\\\\\\\" + getCreationDate() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t balance:\\\\\\\" + getBalance() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t openBalance:\\\\\\\" + getOpenBalance() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t profileID:\\\\\\\" + getProfileID();\\\\n}\\\",\\n \\\"start_line\\\": 139,\\n \\\"end_line\\\": 144,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getAccountID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 141,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 141,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getLoginCount\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 141,\\n \\\"start_column\\\": 93,\\n \\\"end_line\\\": 141,\\n \\\"end_column\\\": 107\\n },\\n {\\n \\\"method_name\\\": \\\"getLogoutCount\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 141,\\n \\\"start_column\\\": 136,\\n \\\"end_line\\\": 141,\\n \\\"end_column\\\": 151\\n },\\n {\\n \\\"method_name\\\": \\\"getLastLogin\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 142,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 142,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"getCreationDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 142,\\n \\\"start_column\\\": 86,\\n \\\"end_line\\\": 142,\\n \\\"end_column\\\": 102\\n },\\n {\\n \\\"method_name\\\": \\\"getBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 142,\\n \\\"start_column\\\": 131,\\n \\\"end_line\\\": 142,\\n \\\"end_column\\\": 142\\n },\\n {\\n \\\"method_name\\\": \\\"getOpenBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 143,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 143,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"getProfileID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 143,\\n \\\"start_column\\\": 88,\\n \\\"end_line\\\": 143,\\n \\\"end_column\\\": 101\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getAccountID()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public Integer getAccountID()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return accountID;\\\\n}\\\",\\n \\\"start_line\\\": 157,\\n \\\"end_line\\\": 159,\\n \\\"return_type\\\": \\\"java.lang.Integer\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean.accountID\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toHTML()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toHTML()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"
Account Data for account: \\\\\\\" + getAccountID() + \\\\\\\"\\\\\\\" + \\\\\\\" loginCount:\\\\\\\" + getLoginCount() + \\\\\\\"\\\\\\\" + \\\\\\\" logoutCount:\\\\\\\" + getLogoutCount() + \\\\\\\"\\\\\\\" + \\\\\\\" lastLogin:\\\\\\\" + getLastLogin() + \\\\\\\"\\\\\\\" + \\\\\\\" creationDate:\\\\\\\" + getCreationDate() + \\\\\\\"\\\\\\\" + \\\\\\\" balance:\\\\\\\" + getBalance() + \\\\\\\"\\\\\\\" + \\\\\\\" openBalance:\\\\\\\" + getOpenBalance() + \\\\\\\"\\\\\\\" + \\\\\\\" profileID:\\\\\\\" + getProfileID() + \\\\\\\"\\\\\\\";\\\\n}\\\",\\n \\\"start_line\\\": 146,\\n \\\"end_line\\\": 151,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getAccountID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 147,\\n \\\"start_column\\\": 54,\\n \\\"end_line\\\": 147,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"getLoginCount\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 147,\\n \\\"start_column\\\": 103,\\n \\\"end_line\\\": 147,\\n \\\"end_column\\\": 117\\n },\\n {\\n \\\"method_name\\\": \\\"getLogoutCount\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 148,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 148,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"getLastLogin\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 148,\\n \\\"start_column\\\": 71,\\n \\\"end_line\\\": 148,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"getCreationDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 148,\\n \\\"start_column\\\": 121,\\n \\\"end_line\\\": 148,\\n \\\"end_column\\\": 137\\n },\\n {\\n \\\"method_name\\\": \\\"getBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 149,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 149,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getOpenBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 149,\\n \\\"start_column\\\": 90,\\n \\\"end_line\\\": 149,\\n \\\"end_column\\\": 105\\n },\\n {\\n \\\"method_name\\\": \\\"getProfileID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 149,\\n \\\"start_column\\\": 142,\\n \\\"end_line\\\": 149,\\n \\\"end_column\\\": 155\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateHoldingStatus(Connection, Integer, String)\\\",\\n \\\"comment\\\": \\\"// UPDATE -- could add a \\\\\\\"status\\\\\\\" attribute to holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void updateHoldingStatus(Connection conn, Integer holdingID, String symbol) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp ts = new Timestamp(0);\\\\n PreparedStatement stmt = getStatement(conn, \\\\\\\"update holdingejb set purchasedate= ? where holdingid = ?\\\\\\\");\\\\n stmt.setTimestamp(1, ts);\\\\n stmt.setInt(2, holdingID.intValue());\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n}\\\",\\n \\\"start_line\\\": 1250,\\n \\\"end_line\\\": 1258,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1252,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1252,\\n \\\"end_column\\\": 108\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 1254,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1254,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1255,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1255,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1255,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 1255,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1256,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1256,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1257,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1257,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"ts\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(0)\\\",\\n \\\"start_line\\\": 1251,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1251,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, \\\\\\\"update holdingejb set purchasedate= ? where holdingid = ?\\\\\\\")\\\",\\n \\\"start_line\\\": 1252,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1252,\\n \\\"end_column\\\": 108\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getStatement(Connection, String)\\\",\\n \\\"comment\\\": \\\"/*\\\\n * Allocate a new prepared statment for this connection\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private PreparedStatement getStatement(Connection conn, String sql) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"sql\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return conn.prepareStatement(sql);\\\\n}\\\",\\n \\\"start_line\\\": 1714,\\n \\\"end_line\\\": 1716,\\n \\\"return_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"prepareStatement\\\",\\n \\\"declaring_type\\\": \\\"java.sql.Connection\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1715,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 1715,\\n \\\"end_column\\\": 37\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"sell(String, Integer, int)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#sell(String, Integer)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\",\\n \\\"@NotNull\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"orderProcessingMode\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Connection conn = null;\\\\n OrderDataBean orderData = null;\\\\n //UserTransaction txn = null;\\\\n /*\\\\n * total = (quantity * purchasePrice) + orderFee\\\\n */\\\\n BigDecimal total;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:sell - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID, holdingID);\\\\n if (!inSession && orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n Log.trace(\\\\\\\"TradeDirect:sell create/begin global transaction\\\\\\\");\\\\n txn.begin();\\\\n setInGlobalTxn(true);\\\\n }\\\\n conn = getConn();\\\\n AccountDataBean accountData = getAccountData(conn, userID);\\\\n HoldingDataBean holdingData = getHoldingData(conn, holdingID.intValue());\\\\n QuoteDataBean quoteData = null;\\\\n if (holdingData != null) {\\\\n quoteData = getQuoteData(conn, holdingData.getQuoteID());\\\\n }\\\\n if ((accountData == null) || (holdingData == null) || (quoteData == null)) {\\\\n String error = \\\\\\\"TradeDirect:sell -- error selling stock -- unable to find: \\\\\\\\n\\\\\\\\taccount=\\\\\\\" + accountData + \\\\\\\"\\\\\\\\n\\\\\\\\tholding=\\\\\\\" + holdingData + \\\\\\\"\\\\\\\\n\\\\\\\\tquote=\\\\\\\" + quoteData + \\\\\\\"\\\\\\\\nfor user: \\\\\\\" + userID + \\\\\\\" and holdingID: \\\\\\\" + holdingID;\\\\n Log.debug(error);\\\\n if (getInGlobalTxn()) {\\\\n txn.rollback();\\\\n } else {\\\\n rollBack(conn, new Exception(error));\\\\n }\\\\n orderData = new OrderDataBean();\\\\n orderData.setOrderStatus(\\\\\\\"cancelled\\\\\\\");\\\\n return orderData;\\\\n }\\\\n double quantity = holdingData.getQuantity();\\\\n orderData = createOrder(accountData, quoteData, holdingData, \\\\\\\"sell\\\\\\\", quantity);\\\\n // Set the holdingSymbol purchaseDate to selling to signify the sell\\\\n // is \\\\\\\"inflight\\\\\\\"\\\\n updateHoldingStatus(conn, holdingData.getHoldingID(), holdingData.getQuoteID());\\\\n // UPDATE -- account should be credited during completeOrder\\\\n BigDecimal price = quoteData.getPrice();\\\\n BigDecimal orderFee = orderData.getOrderFee();\\\\n total = (new BigDecimal(quantity).multiply(price)).subtract(orderFee);\\\\n creditAccountBalance(conn, accountData, total);\\\\n try {\\\\n if (orderProcessingMode == TradeConfig.SYNCH) {\\\\n completeOrder(conn, orderData.getOrderID());\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH) {\\\\n this.completeOrderAsync(orderData.getOrderID(), true);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n queueOrder(orderData.getOrderID(), true);\\\\n }\\\\n } catch (JMSException je) {\\\\n Log.error(\\\\\\\"TradeBean:sell(\\\\\\\" + userID + \\\\\\\",\\\\\\\" + holdingID + \\\\\\\") --> failed to queueOrder\\\\\\\", je);\\\\n cancelOrder(conn, orderData.getOrderID());\\\\n }\\\\n orderData = getOrderData(conn, orderData.getOrderID().intValue());\\\\n if (!inSession && orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n Log.trace(\\\\\\\"TradeDirect:sell committing global transaction\\\\\\\");\\\\n txn.commit();\\\\n setInGlobalTxn(false);\\\\n } else {\\\\n commit(conn);\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:sell error\\\\\\\", e);\\\\n if (getInGlobalTxn()) {\\\\n txn.rollback();\\\\n } else {\\\\n rollBack(conn, e);\\\\n }\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderData;\\\\n}\\\",\\n \\\"start_line\\\": 383,\\n \\\"end_line\\\": 482,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.txn\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH_2PHASE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.SYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"javax.transaction.UserTransaction\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 397,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 397,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 402,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 402,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"begin\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"setInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 405,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 405,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 408,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 408,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getAccountData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 410,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 410,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 58,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 414,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 414,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 414,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 414,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 420,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 420,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 421,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 421,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 422,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 422,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 424,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 424,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 427,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 427,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 431,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 431,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"createOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 433,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 433,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"updateHoldingStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 437,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 437,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 437,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 437,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 437,\\n \\\"start_column\\\": 61,\\n \\\"end_line\\\": 437,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 440,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 440,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 441,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 441,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 442,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 442,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 442,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 442,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"creditAccountBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 443,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 443,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 447,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 447,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 447,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 447,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrderAsync\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 449,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 449,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 449,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 449,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"queueOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 451,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 451,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 451,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 451,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.jms.JMSException\\\"\\n ],\\n \\\"start_line\\\": 454,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 454,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"cancelOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 456,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 456,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 456,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 456,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 459,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 459,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 459,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 459,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 459,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 459,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 463,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 463,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 465,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 465,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"setInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 466,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 466,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 468,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 468,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 471,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 471,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 472,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 472,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 473,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 473,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 475,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 475,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 478,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 478,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 386,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 386,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"total\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 393,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 393,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"name\\\": \\\"accountData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"getAccountData(conn, userID)\\\",\\n \\\"start_line\\\": 410,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 410,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"getHoldingData(conn, holdingID.intValue())\\\",\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 412,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 412,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"name\\\": \\\"error\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"\\\\\\\"TradeDirect:sell -- error selling stock -- unable to find: \\\\\\\\n\\\\\\\\taccount=\\\\\\\" + accountData + \\\\\\\"\\\\\\\\n\\\\\\\\tholding=\\\\\\\" + holdingData + \\\\\\\"\\\\\\\\n\\\\\\\\tquote=\\\\\\\" + quoteData + \\\\\\\"\\\\\\\\nfor user: \\\\\\\" + userID + \\\\\\\" and holdingID: \\\\\\\" + holdingID\\\",\\n \\\"start_line\\\": 418,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 419,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"holdingData.getQuantity()\\\",\\n \\\"start_line\\\": 431,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 431,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 440,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 440,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"orderFee\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderFee()\\\",\\n \\\"start_line\\\": 441,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 441,\\n \\\"end_column\\\": 51\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 14\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateHoldingStatus(Connection, Integer, String)\\\",\\n \\\"comment\\\": \\\"// UPDATE -- could add a \\\\\\\"status\\\\\\\" attribute to holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private void updateHoldingStatus(Connection conn, Integer holdingID, String symbol) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp ts = new Timestamp(0);\\\\n PreparedStatement stmt = getStatement(conn, \\\\\\\"update holdingejb set purchasedate= ? where holdingid = ?\\\\\\\");\\\\n stmt.setTimestamp(1, ts);\\\\n stmt.setInt(2, holdingID.intValue());\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n}\\\",\\n \\\"start_line\\\": 1250,\\n \\\"end_line\\\": 1258,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\"\\n ],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1252,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 1252,\\n \\\"end_column\\\": 108\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 1254,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1254,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 1255,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1255,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1255,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 1255,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1256,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1256,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1257,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 1257,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"ts\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(0)\\\",\\n \\\"start_line\\\": 1251,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 1251,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, \\\\\\\"update holdingejb set purchasedate= ? where holdingid = ?\\\\\\\")\\\",\\n \\\"start_line\\\": 1252,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 1252,\\n \\\"end_column\\\": 108\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getHoldingID()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public Integer getHoldingID()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return holdingID;\\\\n}\\\",\\n \\\"start_line\\\": 124,\\n \\\"end_line\\\": 126,\\n \\\"return_type\\\": \\\"java.lang.Integer\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.holdingID\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toString()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toString()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"\\\\\\\\n\\\\\\\\tHolding Data for holding: \\\\\\\" + getHoldingID() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t quantity:\\\\\\\" + getQuantity() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t purchasePrice:\\\\\\\" + getPurchasePrice() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t purchaseDate:\\\\\\\" + getPurchaseDate() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t quoteID:\\\\\\\" + getQuoteID();\\\\n}\\\",\\n \\\"start_line\\\": 109,\\n \\\"end_line\\\": 113,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getHoldingID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 111,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 111,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 111,\\n \\\"start_column\\\": 94,\\n \\\"end_line\\\": 111,\\n \\\"end_column\\\": 106\\n },\\n {\\n \\\"method_name\\\": \\\"getPurchasePrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 111,\\n \\\"start_column\\\": 136,\\n \\\"end_line\\\": 111,\\n \\\"end_column\\\": 153\\n },\\n {\\n \\\"method_name\\\": \\\"getPurchaseDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 112,\\n \\\"start_column\\\": 45,\\n \\\"end_line\\\": 112,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 112,\\n \\\"start_column\\\": 91,\\n \\\"end_line\\\": 112,\\n \\\"end_column\\\": 102\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getHoldingID()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public Integer getHoldingID()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return holdingID;\\\\n}\\\",\\n \\\"start_line\\\": 124,\\n \\\"end_line\\\": 126,\\n \\\"return_type\\\": \\\"java.lang.Integer\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.holdingID\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toHTML()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toHTML()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"
Holding Data for holding: \\\\\\\" + getHoldingID() + \\\\\\\"\\\\\\\" + \\\\\\\" quantity:\\\\\\\" + getQuantity() + \\\\\\\"\\\\\\\" + \\\\\\\" purchasePrice:\\\\\\\" + getPurchasePrice() + \\\\\\\"\\\\\\\" + \\\\\\\" purchaseDate:\\\\\\\" + getPurchaseDate() + \\\\\\\"\\\\\\\" + \\\\\\\" quoteID:\\\\\\\" + getQuoteID() + \\\\\\\"\\\\\\\";\\\\n}\\\",\\n \\\"start_line\\\": 115,\\n \\\"end_line\\\": 118,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getHoldingID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 116,\\n \\\"start_column\\\": 51,\\n \\\"end_line\\\": 116,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 116,\\n \\\"start_column\\\": 101,\\n \\\"end_line\\\": 116,\\n \\\"end_column\\\": 113\\n },\\n {\\n \\\"method_name\\\": \\\"getPurchasePrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 117,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 117,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"method_name\\\": \\\"getPurchaseDate\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 117,\\n \\\"start_column\\\": 74,\\n \\\"end_line\\\": 117,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 117,\\n \\\"start_column\\\": 128,\\n \\\"end_line\\\": 117,\\n \\\"end_column\\\": 139\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createOrder(AccountDataBean, QuoteDataBean, HoldingDataBean, String, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean createOrder(AccountDataBean account, QuoteDataBean quote, HoldingDataBean holding, String orderType, double quantity)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"name\\\": \\\"holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order;\\\\n try {\\\\n order = new OrderDataBean(orderType, \\\\\\\"open\\\\\\\", new Timestamp(System.currentTimeMillis()), null, quantity, quote.getPrice().setScale(FinancialUtils.SCALE, FinancialUtils.ROUND), TradeConfig.getOrderFee(orderType), account, quote, holding);\\\\n entityManager.persist(order);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. The stock/quote may not exist in the database.\\\\\\\", e);\\\\n throw new EJBException(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. Check that the symbol exists in the database.\\\\\\\", e);\\\\n }\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 540,\\n \\\"end_line\\\": 552,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.ROUND\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.SCALE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 72,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 132\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 545,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 546,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 546,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 548,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 548,\\n \\\"end_column\\\": 127\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 541,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 541,\\n \\\"end_column\\\": 27\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"buy(String, String, double, int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\",\\n \\\"@NotNull\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"orderProcessingMode\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order = null;\\\\n BigDecimal total;\\\\n try {\\\\n AccountProfileDataBean profile = entityManager.find(AccountProfileDataBean.class, userID);\\\\n AccountDataBean account = profile.getAccount();\\\\n QuoteDataBean quote = entityManager.find(QuoteDataBean.class, symbol);\\\\n // The holding will be created by\\\\n HoldingDataBean holding = null;\\\\n // this buy order\\\\n order = createOrder(account, quote, holding, \\\\\\\"buy\\\\\\\", quantity);\\\\n // UPDATE - account should be credited during completeOrder\\\\n BigDecimal price = quote.getPrice();\\\\n BigDecimal orderFee = order.getOrderFee();\\\\n BigDecimal balance = account.getBalance();\\\\n total = (new BigDecimal(quantity).multiply(price)).add(orderFee);\\\\n account.setBalance(balance.subtract(total));\\\\n final Integer orderID = order.getOrderID();\\\\n if (orderProcessingMode == TradeConfig.SYNCH) {\\\\n completeOrder(orderID, false);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH) {\\\\n completeOrderAsync(orderID, false);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n queueOrder(orderID, true);\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:buy(\\\\\\\" + userID + \\\\\\\",\\\\\\\" + symbol + \\\\\\\",\\\\\\\" + quantity + \\\\\\\") --> failed\\\\\\\", e);\\\\n /* On exception - cancel the order */\\\\n // TODO figure out how to do this with JPA\\\\n // if (order != null) order.cancel();\\\\n throw new EJBException(e);\\\\n }\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 111,\\n \\\"end_line\\\": 149,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH_2PHASE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.SYNCH\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 118,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 118,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"method_name\\\": \\\"getAccount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 119,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 119,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 120,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 120,\\n \\\"end_column\\\": 81\\n },\\n {\\n \\\"method_name\\\": \\\"createOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 124,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 124,\\n \\\"end_column\\\": 73\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 127,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 127,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 128,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 128,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getBalance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 129,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 129,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 130,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 130,\\n \\\"end_column\\\": 76\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 130,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 130,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setBalance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 131,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 131,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 131,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 131,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 132,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 132,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 135,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 135,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrderAsync\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 137,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 137,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"queueOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 139,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 139,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 142,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 142,\\n \\\"end_column\\\": 104\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 114,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 114,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"total\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 115,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 115,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"name\\\": \\\"profile\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(AccountProfileDataBean.class, userID)\\\",\\n \\\"start_line\\\": 118,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 118,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"name\\\": \\\"account\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"profile.getAccount()\\\",\\n \\\"start_line\\\": 119,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 119,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(QuoteDataBean.class, symbol)\\\",\\n \\\"start_line\\\": 120,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 120,\\n \\\"end_column\\\": 81\\n },\\n {\\n \\\"name\\\": \\\"holding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 121,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 121,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 127,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 127,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"name\\\": \\\"orderFee\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"order.getOrderFee()\\\",\\n \\\"start_line\\\": 128,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 128,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"name\\\": \\\"balance\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"account.getBalance()\\\",\\n \\\"start_line\\\": 129,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 129,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"order.getOrderID()\\\",\\n \\\"start_line\\\": 132,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 132,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 4\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"sell(String, Integer, int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\",\\n \\\"@NotNull\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean sell(final String userID, final Integer holdingID, int orderProcessingMode)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"final\\\"\\n ]\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"final\\\"\\n ]\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"orderProcessingMode\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order = null;\\\\n BigDecimal total;\\\\n try {\\\\n AccountProfileDataBean profile = entityManager.find(AccountProfileDataBean.class, userID);\\\\n AccountDataBean account = profile.getAccount();\\\\n HoldingDataBean holding = entityManager.find(HoldingDataBean.class, holdingID);\\\\n if (holding == null) {\\\\n Log.debug(\\\\\\\"TradeSLSBBean:sell User \\\\\\\" + userID + \\\\\\\" attempted to sell holding \\\\\\\" + holdingID + \\\\\\\" which has already been sold\\\\\\\");\\\\n OrderDataBean orderData = new OrderDataBean();\\\\n orderData.setOrderStatus(\\\\\\\"cancelled\\\\\\\");\\\\n entityManager.persist(orderData);\\\\n return orderData;\\\\n }\\\\n QuoteDataBean quote = holding.getQuote();\\\\n double quantity = holding.getQuantity();\\\\n order = createOrder(account, quote, holding, \\\\\\\"sell\\\\\\\", quantity);\\\\n // UPDATE the holding purchase data to signify this holding is\\\\n // \\\\\\\"inflight\\\\\\\" to be sold\\\\n // -- could add a new holdingStatus attribute to holdingEJB\\\\n holding.setPurchaseDate(new java.sql.Timestamp(0));\\\\n // UPDATE - account should be credited during completeOrder\\\\n BigDecimal price = quote.getPrice();\\\\n BigDecimal orderFee = order.getOrderFee();\\\\n BigDecimal balance = account.getBalance();\\\\n total = (new BigDecimal(quantity).multiply(price)).subtract(orderFee);\\\\n account.setBalance(balance.add(total));\\\\n final Integer orderID = order.getOrderID();\\\\n if (orderProcessingMode == TradeConfig.SYNCH) {\\\\n completeOrder(orderID, false);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH) {\\\\n completeOrderAsync(orderID, false);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n queueOrder(orderID, true);\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:sell(\\\\\\\" + userID + \\\\\\\",\\\\\\\" + holdingID + \\\\\\\") --> failed\\\\\\\", e);\\\\n // if (order != null) order.cancel();\\\\n // UPDATE - handle all exceptions like:\\\\n throw new EJBException(\\\\\\\"TradeSLSBBean:sell(\\\\\\\" + userID + \\\\\\\",\\\\\\\" + holdingID + \\\\\\\")\\\\\\\", e);\\\\n }\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 151,\\n \\\"end_line\\\": 205,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH_2PHASE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.SYNCH\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 157,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 157,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"method_name\\\": \\\"getAccount\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 158,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 158,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"find\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Class\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 160,\\n \\\"start_column\\\": 39,\\n \\\"end_line\\\": 160,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 163,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 163,\\n \\\"end_column\\\": 139\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 166,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 166,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 167,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 167,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 172,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 172,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 173,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 173,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"createOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 175,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 175,\\n \\\"end_column\\\": 74\\n },\\n {\\n \\\"method_name\\\": \\\"setPurchaseDate\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 180,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 180,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 183,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 183,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 184,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 184,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getBalance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 185,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 185,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 186,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 186,\\n \\\"end_column\\\": 81\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 186,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 186,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"setBalance\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 187,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 187,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 187,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 187,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 188,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 188,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 191,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 191,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrderAsync\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 193,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 193,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"queueOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 195,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 195,\\n \\\"end_column\\\": 41\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 199,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 199,\\n \\\"end_column\\\": 91\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 154,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 154,\\n \\\"end_column\\\": 32\\n },\\n {\\n \\\"name\\\": \\\"total\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 155,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 155,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"name\\\": \\\"profile\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(AccountProfileDataBean.class, userID)\\\",\\n \\\"start_line\\\": 157,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 157,\\n \\\"end_column\\\": 101\\n },\\n {\\n \\\"name\\\": \\\"account\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"profile.getAccount()\\\",\\n \\\"start_line\\\": 158,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 158,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"name\\\": \\\"holding\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"entityManager.find(HoldingDataBean.class, holdingID)\\\",\\n \\\"start_line\\\": 160,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 160,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"new OrderDataBean()\\\",\\n \\\"start_line\\\": 165,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 165,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"holding.getQuote()\\\",\\n \\\"start_line\\\": 172,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 172,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"holding.getQuantity()\\\",\\n \\\"start_line\\\": 173,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 173,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quote.getPrice()\\\",\\n \\\"start_line\\\": 183,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 183,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"name\\\": \\\"orderFee\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"order.getOrderFee()\\\",\\n \\\"start_line\\\": 184,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 184,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"name\\\": \\\"balance\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"account.getBalance()\\\",\\n \\\"start_line\\\": 185,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 185,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"order.getOrderID()\\\",\\n \\\"start_line\\\": 188,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 188,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 5\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createOrder(AccountDataBean, QuoteDataBean, HoldingDataBean, String, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public OrderDataBean createOrder(AccountDataBean account, QuoteDataBean quote, HoldingDataBean holding, String orderType, double quantity)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"name\\\": \\\"account\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quote\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"name\\\": \\\"holding\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n OrderDataBean order;\\\\n try {\\\\n order = new OrderDataBean(orderType, \\\\\\\"open\\\\\\\", new Timestamp(System.currentTimeMillis()), null, quantity, quote.getPrice().setScale(FinancialUtils.SCALE, FinancialUtils.ROUND), TradeConfig.getOrderFee(orderType), account, quote, holding);\\\\n entityManager.persist(order);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. The stock/quote may not exist in the database.\\\\\\\", e);\\\\n throw new EJBException(\\\\\\\"TradeSLSBBean:createOrder -- failed to create Order. Check that the symbol exists in the database.\\\\\\\", e);\\\\n }\\\\n return order;\\\\n}\\\",\\n \\\"start_line\\\": 540,\\n \\\"end_line\\\": 552,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.ROUND\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.SCALE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.lang.System\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 72,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 544,\\n \\\"start_column\\\": 117,\\n \\\"end_line\\\": 544,\\n \\\"end_column\\\": 132\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 545,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 545,\\n \\\"end_column\\\": 99\\n },\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 546,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 546,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 548,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 548,\\n \\\"end_column\\\": 127\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"order\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 541,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 541,\\n \\\"end_column\\\": 27\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getQuantity()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public double getQuantity()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return quantity;\\\\n}\\\",\\n \\\"start_line\\\": 132,\\n \\\"end_line\\\": 134,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean.quantity\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"computeHoldingsTotal(Collection)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal computeHoldingsTotal(Collection> holdingDataBeans)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.util.Collection>\\\",\\n \\\"name\\\": \\\"holdingDataBeans\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n BigDecimal holdingsTotal = new BigDecimal(0.0).setScale(SCALE);\\\\n if (holdingDataBeans == null) {\\\\n return holdingsTotal;\\\\n }\\\\n Iterator> it = holdingDataBeans.iterator();\\\\n while (it.hasNext()) {\\\\n HoldingDataBean holdingData = (HoldingDataBean) it.next();\\\\n BigDecimal total = holdingData.getPurchasePrice().multiply(new BigDecimal(holdingData.getQuantity()));\\\\n holdingsTotal = holdingsTotal.add(total);\\\\n }\\\\n return holdingsTotal.setScale(SCALE);\\\\n}\\\",\\n \\\"start_line\\\": 44,\\n \\\"end_line\\\": 56,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.util.Iterator>\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.FinancialUtils.SCALE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.util.Collection>\\\",\\n \\\"java.util.Iterator>\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 45,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 45,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 49,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 49,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 50,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 50,\\n \\\"end_column\\\": 27\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 51,\\n \\\"start_column\\\": 61,\\n \\\"end_line\\\": 51,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 52,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 52,\\n \\\"end_column\\\": 113\\n },\\n {\\n \\\"method_name\\\": \\\"getPurchasePrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 52,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 52,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 52,\\n \\\"start_column\\\": 87,\\n \\\"end_line\\\": 52,\\n \\\"end_column\\\": 111\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 53,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 53,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 55,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 55,\\n \\\"end_column\\\": 44\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"holdingsTotal\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"new BigDecimal(0.0).setScale(SCALE)\\\",\\n \\\"start_line\\\": 45,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 45,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"name\\\": \\\"it\\\",\\n \\\"type\\\": \\\"java.util.Iterator>\\\",\\n \\\"initializer\\\": \\\"holdingDataBeans.iterator()\\\",\\n \\\"start_line\\\": 49,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 49,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"(HoldingDataBean) it.next()\\\",\\n \\\"start_line\\\": 51,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 51,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"name\\\": \\\"total\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"holdingData.getPurchasePrice().multiply(new BigDecimal(holdingData.getQuantity()))\\\",\\n \\\"start_line\\\": 52,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 52,\\n \\\"end_column\\\": 113\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.FinancialUtils\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"random()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static double random()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return randomNumberGenerator.nextDouble();\\\\n}\\\",\\n \\\"start_line\\\": 301,\\n \\\"end_line\\\": 303,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.randomNumberGenerator\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Random\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"nextDouble\\\",\\n \\\"declaring_type\\\": \\\"java.util.Random\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndInt(int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static int rndInt(int i)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"i\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new Float(random() * i)).intValue();\\\\n}\\\",\\n \\\"start_line\\\": 326,\\n \\\"end_line\\\": 328,\\n \\\"return_type\\\": \\\"int\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Float\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Float\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 327,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 327,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 327,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 327,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"random()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static double random()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return randomNumberGenerator.nextDouble();\\\\n}\\\",\\n \\\"start_line\\\": 301,\\n \\\"end_line\\\": 303,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.randomNumberGenerator\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Random\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"nextDouble\\\",\\n \\\"declaring_type\\\": \\\"java.util.Random\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndFloat(int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static float rndFloat(int i)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"i\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new Float(random() * i)).floatValue();\\\\n}\\\",\\n \\\"start_line\\\": 330,\\n \\\"end_line\\\": 332,\\n \\\"return_type\\\": \\\"float\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Float\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"floatValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Float\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"random()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static double random()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return randomNumberGenerator.nextDouble();\\\\n}\\\",\\n \\\"start_line\\\": 301,\\n \\\"end_line\\\": 303,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.randomNumberGenerator\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Random\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"nextDouble\\\",\\n \\\"declaring_type\\\": \\\"java.util.Random\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndBigDecimal(float)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal rndBigDecimal(float f)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"float\\\",\\n \\\"name\\\": \\\"f\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new BigDecimal(random() * f)).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n}\\\",\\n \\\"start_line\\\": 334,\\n \\\"end_line\\\": 336,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 335,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 335,\\n \\\"end_column\\\": 79\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 335,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 335,\\n \\\"end_column\\\": 35\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"random()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static double random()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return randomNumberGenerator.nextDouble();\\\\n}\\\",\\n \\\"start_line\\\": 301,\\n \\\"end_line\\\": 303,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.randomNumberGenerator\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Random\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"nextDouble\\\",\\n \\\"declaring_type\\\": \\\"java.util.Random\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getRandomPriceChangeFactor()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal getRandomPriceChangeFactor()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n // CJB (DAYTRADER-25) - Vary change factor between 1.1 and 0.9\\\\n double percentGain = rndFloat(1) * 0.1;\\\\n if (random() < .5) {\\\\n percentGain *= -1;\\\\n }\\\\n percentGain += 1;\\\\n // change factor is between +/- 20%\\\\n BigDecimal percentGainBD = (new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n if (percentGainBD.doubleValue() <= 0.0) {\\\\n percentGainBD = ONE;\\\\n }\\\\n return percentGainBD;\\\\n}\\\",\\n \\\"start_line\\\": 356,\\n \\\"end_line\\\": 371,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ONE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 366,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 366,\\n \\\"end_column\\\": 35\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"percentGain\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"rndFloat(1) * 0.1\\\",\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"name\\\": \\\"percentGainBD\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"(new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndFloat(int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static float rndFloat(int i)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"i\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new Float(random() * i)).floatValue();\\\\n}\\\",\\n \\\"start_line\\\": 330,\\n \\\"end_line\\\": 332,\\n \\\"return_type\\\": \\\"float\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Float\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"floatValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Float\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"random()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static double random()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return randomNumberGenerator.nextDouble();\\\\n}\\\",\\n \\\"start_line\\\": 301,\\n \\\"end_line\\\": 303,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.randomNumberGenerator\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Random\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"nextDouble\\\",\\n \\\"declaring_type\\\": \\\"java.util.Random\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getRandomInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static QuoteDataBean getRandomInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return new // symbol\\\\n QuoteDataBean(// symbol\\\\n TradeConfig.rndSymbol(), // Company Name\\\\n TradeConfig.rndSymbol() + \\\\\\\" Incorporated\\\\\\\", // volume\\\\n TradeConfig.rndFloat(100000), // price\\\\n TradeConfig.rndBigDecimal(1000.0f), // open1\\\\n TradeConfig.rndBigDecimal(1000.0f), // low\\\\n TradeConfig.rndBigDecimal(1000.0f), // high\\\\n TradeConfig.rndBigDecimal(1000.0f), // volume\\\\n TradeConfig.rndFloat(100000));\\\\n}\\\",\\n \\\"start_line\\\": 96,\\n \\\"end_line\\\": 106,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"rndSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 97,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 97,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"rndSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 98,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 98,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 99,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 99,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 101,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 101,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 104,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 104,\\n \\\"end_column\\\": 44\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"QuoteDataBean(String, String, double, BigDecimal, BigDecimal, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean(String symbol, String companyName, double volume, BigDecimal price, BigDecimal open, BigDecimal low, BigDecimal high, double change)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"volume\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"open\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"low\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"high\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"change\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n setSymbol(symbol);\\\\n setCompanyName(companyName);\\\\n setVolume(volume);\\\\n setPrice(price);\\\\n setOpen(open);\\\\n setLow(low);\\\\n setHigh(high);\\\\n setChange(change);\\\\n}\\\",\\n \\\"start_line\\\": 85,\\n \\\"end_line\\\": 94,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.price\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.volume\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.high\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.low\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.symbol\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setSymbol\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 86,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 86,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"setCompanyName\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 87,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 87,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 88,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 89,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 89,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"setOpen\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 90,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 90,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"setLow\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 91,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 91,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"setHigh\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 92,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 92,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 93,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 93,\\n \\\"end_column\\\": 25\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndFloat(int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static float rndFloat(int i)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"i\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new Float(random() * i)).floatValue();\\\\n}\\\",\\n \\\"start_line\\\": 330,\\n \\\"end_line\\\": 332,\\n \\\"return_type\\\": \\\"float\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Float\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"floatValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Float\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getRandomPriceChangeFactor()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal getRandomPriceChangeFactor()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n // CJB (DAYTRADER-25) - Vary change factor between 1.1 and 0.9\\\\n double percentGain = rndFloat(1) * 0.1;\\\\n if (random() < .5) {\\\\n percentGain *= -1;\\\\n }\\\\n percentGain += 1;\\\\n // change factor is between +/- 20%\\\\n BigDecimal percentGainBD = (new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n if (percentGainBD.doubleValue() <= 0.0) {\\\\n percentGainBD = ONE;\\\\n }\\\\n return percentGainBD;\\\\n}\\\",\\n \\\"start_line\\\": 356,\\n \\\"end_line\\\": 371,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ONE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 366,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 366,\\n \\\"end_column\\\": 35\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"percentGain\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"rndFloat(1) * 0.1\\\",\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"name\\\": \\\"percentGainBD\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"(new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndFloat(int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static float rndFloat(int i)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"i\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new Float(random() * i)).floatValue();\\\\n}\\\",\\n \\\"start_line\\\": 330,\\n \\\"end_line\\\": 332,\\n \\\"return_type\\\": \\\"float\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Float\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"floatValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Float\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getRandomInstance()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static QuoteDataBean getRandomInstance()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return new // symbol\\\\n QuoteDataBean(// symbol\\\\n TradeConfig.rndSymbol(), // Company Name\\\\n TradeConfig.rndSymbol() + \\\\\\\" Incorporated\\\\\\\", // volume\\\\n TradeConfig.rndFloat(100000), // price\\\\n TradeConfig.rndBigDecimal(1000.0f), // open1\\\\n TradeConfig.rndBigDecimal(1000.0f), // low\\\\n TradeConfig.rndBigDecimal(1000.0f), // high\\\\n TradeConfig.rndBigDecimal(1000.0f), // volume\\\\n TradeConfig.rndFloat(100000));\\\\n}\\\",\\n \\\"start_line\\\": 96,\\n \\\"end_line\\\": 106,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"rndSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 97,\\n \\\"start_column\\\": 34,\\n \\\"end_line\\\": 97,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"rndSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 98,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 98,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 99,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 99,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 101,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 101,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 102,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 102,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 103,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 103,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 104,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 104,\\n \\\"end_column\\\": 44\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getRandomPriceChangeFactor()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal getRandomPriceChangeFactor()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n // CJB (DAYTRADER-25) - Vary change factor between 1.1 and 0.9\\\\n double percentGain = rndFloat(1) * 0.1;\\\\n if (random() < .5) {\\\\n percentGain *= -1;\\\\n }\\\\n percentGain += 1;\\\\n // change factor is between +/- 20%\\\\n BigDecimal percentGainBD = (new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n if (percentGainBD.doubleValue() <= 0.0) {\\\\n percentGainBD = ONE;\\\\n }\\\\n return percentGainBD;\\\\n}\\\",\\n \\\"start_line\\\": 356,\\n \\\"end_line\\\": 371,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ONE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 366,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 366,\\n \\\"end_column\\\": 35\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"percentGain\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"rndFloat(1) * 0.1\\\",\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"name\\\": \\\"percentGainBD\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"(new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"rndFloat(int)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static float rndFloat(int i)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"i\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n return (new Float(random() * i)).floatValue();\\\\n}\\\",\\n \\\"start_line\\\": 330,\\n \\\"end_line\\\": 332,\\n \\\"return_type\\\": \\\"float\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Float\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"floatValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Float\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 331,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 331,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getRandomPriceChangeFactor()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static BigDecimal getRandomPriceChangeFactor()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n // CJB (DAYTRADER-25) - Vary change factor between 1.1 and 0.9\\\\n double percentGain = rndFloat(1) * 0.1;\\\\n if (random() < .5) {\\\\n percentGain *= -1;\\\\n }\\\\n percentGain += 1;\\\\n // change factor is between +/- 20%\\\\n BigDecimal percentGainBD = (new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP);\\\\n if (percentGainBD.doubleValue() <= 0.0) {\\\\n percentGainBD = ONE;\\\\n }\\\\n return percentGainBD;\\\\n}\\\",\\n \\\"start_line\\\": 356,\\n \\\"end_line\\\": 371,\\n \\\"return_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"java.math.BigDecimal.ROUND_HALF_UP\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ONE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"rndFloat\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"method_name\\\": \\\"random\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"setScale\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"doubleValue\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 366,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 366,\\n \\\"end_column\\\": 35\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"percentGain\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"rndFloat(1) * 0.1\\\",\\n \\\"start_line\\\": 358,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 358,\\n \\\"end_column\\\": 42\\n },\\n {\\n \\\"name\\\": \\\"percentGainBD\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"(new BigDecimal(percentGain)).setScale(2, BigDecimal.ROUND_HALF_UP)\\\",\\n \\\"start_line\\\": 365,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 365,\\n \\\"end_column\\\": 98\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"random()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static double random()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return randomNumberGenerator.nextDouble();\\\\n}\\\",\\n \\\"start_line\\\": 301,\\n \\\"end_line\\\": 303,\\n \\\"return_type\\\": \\\"double\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.randomNumberGenerator\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Random\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"nextDouble\\\",\\n \\\"declaring_type\\\": \\\"java.util.Random\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 302,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 302,\\n \\\"end_column\\\": 45\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.TradeConfig\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"completeOrder(Connection, Integer)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private OrderDataBean completeOrder(Connection conn, Integer orderID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n //conn = getConn();\\\\n OrderDataBean orderData = null;\\\\n Log.trace(\\\\\\\"TradeDirect:completeOrderInternal - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", orderID);\\\\n PreparedStatement stmt = getStatement(conn, getOrderSQL);\\\\n stmt.setInt(1, orderID.intValue());\\\\n ResultSet rs = stmt.executeQuery();\\\\n if (!rs.next()) {\\\\n Log.error(\\\\\\\"TradeDirect:completeOrder -- unable to find order: \\\\\\\" + orderID);\\\\n stmt.close();\\\\n return orderData;\\\\n }\\\\n orderData = getOrderDataFromResultSet(rs);\\\\n String orderType = orderData.getOrderType();\\\\n String orderStatus = orderData.getOrderStatus();\\\\n // if (order.isCompleted())\\\\n if ((orderStatus.compareToIgnoreCase(\\\\\\\"completed\\\\\\\") == 0) || (orderStatus.compareToIgnoreCase(\\\\\\\"alertcompleted\\\\\\\") == 0) || (orderStatus.compareToIgnoreCase(\\\\\\\"cancelled\\\\\\\") == 0)) {\\\\n throw new Exception(\\\\\\\"TradeDirect:completeOrder -- attempt to complete Order that is already completed\\\\\\\");\\\\n }\\\\n int accountID = rs.getInt(\\\\\\\"account_accountID\\\\\\\");\\\\n String quoteID = rs.getString(\\\\\\\"quote_symbol\\\\\\\");\\\\n int holdingID = rs.getInt(\\\\\\\"holding_holdingID\\\\\\\");\\\\n BigDecimal price = orderData.getPrice();\\\\n double quantity = orderData.getQuantity();\\\\n // get the data for the account and quote\\\\n // the holding will be created for a buy or extracted for a sell\\\\n /*\\\\n * Use the AccountID and Quote Symbol from the Order AccountDataBean\\\\n * accountData = getAccountData(accountID, conn); QuoteDataBean\\\\n * quoteData = getQuoteData(conn, quoteID);\\\\n */\\\\n String userID = getAccountProfileData(conn, new Integer(accountID)).getUserID();\\\\n HoldingDataBean holdingData = null;\\\\n Log.trace(\\\\\\\"TradeDirect:completeOrder--> Completing Order \\\\\\\" + orderData.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + orderData + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + accountID + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quoteID);\\\\n // if (order.isBuy())\\\\n if (orderType.compareToIgnoreCase(\\\\\\\"buy\\\\\\\") == 0) {\\\\n /*\\\\n * Complete a Buy operation - create a new Holding for the Account -\\\\n * deduct the Order cost from the Account balance\\\\n */\\\\n holdingData = createHolding(conn, accountID, quoteID, quantity, price);\\\\n updateOrderHolding(conn, orderID.intValue(), holdingData.getHoldingID().intValue());\\\\n updateOrderStatus(conn, orderData.getOrderID(), \\\\\\\"closed\\\\\\\");\\\\n updateQuotePriceVolume(orderData.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), orderData.getQuantity());\\\\n }\\\\n // if (order.isSell()) {\\\\n if (orderType.compareToIgnoreCase(\\\\\\\"sell\\\\\\\") == 0) {\\\\n /*\\\\n * Complete a Sell operation - remove the Holding from the Account -\\\\n * deposit the Order proceeds to the Account balance\\\\n */\\\\n holdingData = getHoldingData(conn, holdingID);\\\\n if (holdingData == null) {\\\\n Log.debug(\\\\\\\"TradeDirect:completeOrder:sell -- user: \\\\\\\" + userID + \\\\\\\" already sold holding: \\\\\\\" + holdingID);\\\\n updateOrderStatus(conn, orderData.getOrderID(), \\\\\\\"cancelled\\\\\\\");\\\\n } else {\\\\n removeHolding(conn, holdingID, orderID.intValue());\\\\n updateOrderStatus(conn, orderData.getOrderID(), \\\\\\\"closed\\\\\\\");\\\\n updateQuotePriceVolume(orderData.getSymbol(), TradeConfig.getRandomPriceChangeFactor(), orderData.getQuantity());\\\\n }\\\\n }\\\\n Log.trace(\\\\\\\"TradeDirect:completeOrder--> Completed Order \\\\\\\" + orderData.getOrderID() + \\\\\\\"\\\\\\\\n\\\\\\\\t Order info: \\\\\\\" + orderData + \\\\\\\"\\\\\\\\n\\\\\\\\t Account info: \\\\\\\" + accountID + \\\\\\\"\\\\\\\\n\\\\\\\\t Quote info: \\\\\\\" + quoteID + \\\\\\\"\\\\\\\\n\\\\\\\\t Holding info: \\\\\\\" + holdingData);\\\\n stmt.close();\\\\n commit(conn);\\\\n return orderData;\\\\n}\\\",\\n \\\"start_line\\\": 551,\\n \\\"end_line\\\": 646,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getOrderSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 555,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 555,\\n \\\"end_column\\\": 95\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 558,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 558,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 559,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 559,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 559,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 559,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 561,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 561,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 563,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 563,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 564,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 564,\\n \\\"end_column\\\": 80\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 565,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 565,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 568,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 568,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderType\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 570,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 570,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 571,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 571,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 574,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 574,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 574,\\n \\\"start_column\\\": 65,\\n \\\"end_line\\\": 574,\\n \\\"end_column\\\": 113\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 575,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 575,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 579,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 579,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 580,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 580,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 581,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 581,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 583,\\n \\\"start_column\\\": 24,\\n \\\"end_line\\\": 583,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 584,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 584,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getUserID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 594,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 594,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"method_name\\\": \\\"getAccountProfileData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 594,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 594,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 599,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 600,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 599,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 599,\\n \\\"end_column\\\": 87\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 604,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 604,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"createHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 610,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 610,\\n \\\"end_column\\\": 76\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 88\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 611,\\n \\\"start_column\\\": 52,\\n \\\"end_line\\\": 611,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 612,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 612,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 612,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 612,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 118\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 53,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 92\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 613,\\n \\\"start_column\\\": 95,\\n \\\"end_line\\\": 613,\\n \\\"end_column\\\": 117\\n },\\n {\\n \\\"method_name\\\": \\\"compareToIgnoreCase\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 617,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 617,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 622,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 622,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 624,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 624,\\n \\\"end_column\\\": 110\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 625,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 625,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 625,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 625,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"removeHolding\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 627,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 627,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 627,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 627,\\n \\\"end_column\\\": 57\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 628,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 628,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 628,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 628,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"updateQuotePriceVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 120\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"getRandomPriceChangeFactor\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 94\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 629,\\n \\\"start_column\\\": 97,\\n \\\"end_line\\\": 629,\\n \\\"end_column\\\": 119\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 636,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 637,\\n \\\"end_column\\\": 92\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 636,\\n \\\"start_column\\\": 65,\\n \\\"end_line\\\": 636,\\n \\\"end_column\\\": 86\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 639,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 639,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 641,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 641,\\n \\\"end_column\\\": 16\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 553,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 553,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getOrderSQL)\\\",\\n \\\"start_line\\\": 558,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 558,\\n \\\"end_column\\\": 60\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 561,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 561,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"name\\\": \\\"orderType\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderType()\\\",\\n \\\"start_line\\\": 570,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 570,\\n \\\"end_column\\\": 47\\n },\\n {\\n \\\"name\\\": \\\"orderStatus\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderStatus()\\\",\\n \\\"start_line\\\": 571,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 571,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"name\\\": \\\"accountID\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"account_accountID\\\\\\\")\\\",\\n \\\"start_line\\\": 579,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 579,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"name\\\": \\\"quoteID\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"rs.getString(\\\\\\\"quote_symbol\\\\\\\")\\\",\\n \\\"start_line\\\": 580,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 580,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"rs.getInt(\\\\\\\"holding_holdingID\\\\\\\")\\\",\\n \\\"start_line\\\": 581,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 581,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"orderData.getPrice()\\\",\\n \\\"start_line\\\": 583,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 583,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"orderData.getQuantity()\\\",\\n \\\"start_line\\\": 584,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 584,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"userID\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"getAccountProfileData(conn, new Integer(accountID)).getUserID()\\\",\\n \\\"start_line\\\": 594,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 594,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 596,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 596,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 8\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createHolding(Connection, int, String, double, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"private\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"private HoldingDataBean createHolding(Connection conn, int accountID, String symbol, double quantity, BigDecimal purchasePrice) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"name\\\": \\\"conn\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"accountID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"purchasePrice\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Timestamp purchaseDate = new Timestamp(System.currentTimeMillis());\\\\n PreparedStatement stmt = getStatement(conn, createHoldingSQL);\\\\n Integer holdingID = KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn());\\\\n stmt.setInt(1, holdingID.intValue());\\\\n stmt.setTimestamp(2, purchaseDate);\\\\n stmt.setBigDecimal(3, purchasePrice);\\\\n stmt.setDouble(4, quantity);\\\\n stmt.setString(5, symbol);\\\\n stmt.setInt(6, accountID);\\\\n stmt.executeUpdate();\\\\n stmt.close();\\\\n return getHoldingData(conn, holdingID.intValue());\\\\n}\\\",\\n \\\"start_line\\\": 681,\\n \\\"end_line\\\": 698,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Timestamp\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.createHoldingSQL\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"java.lang.System\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 44,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 30,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"getNextID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.impl.direct.KeySequenceDirect\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 81,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 96\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 687,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 687,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"setTimestamp\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.sql.Timestamp\\\"\\n ],\\n \\\"start_line\\\": 688,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 688,\\n \\\"end_column\\\": 38\\n },\\n {\\n \\\"method_name\\\": \\\"setBigDecimal\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 689,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 689,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"setDouble\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 690,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 690,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 691,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 691,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"setInt\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 692,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 692,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"executeUpdate\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 693,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 693,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 695,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 695,\\n \\\"end_column\\\": 16\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 697,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 697,\\n \\\"end_column\\\": 52\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"purchaseDate\\\",\\n \\\"type\\\": \\\"java.sql.Timestamp\\\",\\n \\\"initializer\\\": \\\"new Timestamp(System.currentTimeMillis())\\\",\\n \\\"start_line\\\": 683,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 683,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, createHoldingSQL)\\\",\\n \\\"start_line\\\": 684,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 684,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"initializer\\\": \\\"KeySequenceDirect.getNextID(conn, \\\\\\\"holding\\\\\\\", inSession, getInGlobalTxn())\\\",\\n \\\"start_line\\\": 686,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 686,\\n \\\"end_column\\\": 97\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getClosedOrders(String)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#getClosedOrders(String)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public Collection getClosedOrders(String userID) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Collection orderDataBeans = new ArrayList();\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:getClosedOrders - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID);\\\\n conn = getConn();\\\\n PreparedStatement stmt = getStatement(conn, getClosedOrdersSQL);\\\\n stmt.setString(1, userID);\\\\n ResultSet rs = stmt.executeQuery();\\\\n while (rs.next()) {\\\\n OrderDataBean orderData = getOrderDataFromResultSet(rs);\\\\n orderData.setOrderStatus(\\\\\\\"completed\\\\\\\");\\\\n updateOrderStatus(conn, orderData.getOrderID(), orderData.getOrderStatus());\\\\n orderDataBeans.add(orderData);\\\\n }\\\\n stmt.close();\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getOrders -- error getting user orders\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderDataBeans;\\\\n}\\\",\\n \\\"start_line\\\": 801,\\n \\\"end_line\\\": 833,\\n \\\"return_type\\\": \\\"java.util.Collection\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.getClosedOrdersSQL\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection\\\",\\n \\\"java.sql.ResultSet\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.sql.PreparedStatement\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 807,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 807,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 810,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 810,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getStatement\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 811,\\n \\\"start_column\\\": 32,\\n \\\"end_line\\\": 811,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"setString\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 812,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 812,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"executeQuery\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 814,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 814,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 816,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 816,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderDataFromResultSet\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.ResultSet\\\"\\n ],\\n \\\"start_line\\\": 817,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 817,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 818,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 818,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"updateOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 83\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 819,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 819,\\n \\\"end_column\\\": 82\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"start_line\\\": 820,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 820,\\n \\\"end_column\\\": 37\\n },\\n {\\n \\\"method_name\\\": \\\"close\\\",\\n \\\"declaring_type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 824,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 824,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 825,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 825,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 827,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 827,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 828,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 828,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 830,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 830,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"orderDataBeans\\\",\\n \\\"type\\\": \\\"java.util.Collection\\\",\\n \\\"initializer\\\": \\\"new ArrayList()\\\",\\n \\\"start_line\\\": 803,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 803,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 804,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 804,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"stmt\\\",\\n \\\"type\\\": \\\"java.sql.PreparedStatement\\\",\\n \\\"initializer\\\": \\\"getStatement(conn, getClosedOrdersSQL)\\\",\\n \\\"start_line\\\": 811,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 811,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"name\\\": \\\"rs\\\",\\n \\\"type\\\": \\\"java.sql.ResultSet\\\",\\n \\\"initializer\\\": \\\"stmt.executeQuery()\\\",\\n \\\"start_line\\\": 814,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 814,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"getOrderDataFromResultSet(rs)\\\",\\n \\\"start_line\\\": 817,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 817,\\n \\\"end_column\\\": 63\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"setOrderStatus(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void setOrderStatus(String orderStatus)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"orderStatus\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n this.orderStatus = orderStatus;\\\\n}\\\",\\n \\\"start_line\\\": 196,\\n \\\"end_line\\\": 198,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean.orderStatus\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getAddress()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getAddress()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return address;\\\\n}\\\",\\n \\\"start_line\\\": 131,\\n \\\"end_line\\\": 133,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean.address\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toString()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toString()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"\\\\\\\\n\\\\\\\\tAccount Profile Data for userID:\\\\\\\" + getUserID() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t passwd:\\\\\\\" + getPassword() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t fullName:\\\\\\\" + getFullName() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t address:\\\\\\\" + getAddress() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t email:\\\\\\\" + getEmail() + \\\\\\\"\\\\\\\\n\\\\\\\\t\\\\\\\\t creditCard:\\\\\\\" + getCreditCard();\\\\n}\\\",\\n \\\"start_line\\\": 91,\\n \\\"end_line\\\": 95,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUserID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 93,\\n \\\"start_column\\\": 57,\\n \\\"end_line\\\": 93,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"getPassword\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 93,\\n \\\"start_column\\\": 92,\\n \\\"end_line\\\": 93,\\n \\\"end_column\\\": 104\\n },\\n {\\n \\\"method_name\\\": \\\"getFullName\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 93,\\n \\\"start_column\\\": 131,\\n \\\"end_line\\\": 93,\\n \\\"end_column\\\": 143\\n },\\n {\\n \\\"method_name\\\": \\\"getAddress\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 42,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getEmail\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 80,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 89\\n },\\n {\\n \\\"method_name\\\": \\\"getCreditCard\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 94,\\n \\\"start_column\\\": 116,\\n \\\"end_line\\\": 94,\\n \\\"end_column\\\": 130\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"getAddress()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String getAddress()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return address;\\\\n}\\\",\\n \\\"start_line\\\": 131,\\n \\\"end_line\\\": 133,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean.address\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"toHTML()\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public String toHTML()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return \\\\\\\"
Account Profile Data for userID: \\\\\\\" + getUserID() + \\\\\\\"\\\\\\\" + \\\\\\\" passwd:\\\\\\\" + getPassword() + \\\\\\\"\\\\\\\" + \\\\\\\" fullName:\\\\\\\" + getFullName() + \\\\\\\"\\\\\\\" + \\\\\\\" address:\\\\\\\" + getAddress() + \\\\\\\"\\\\\\\" + \\\\\\\" email:\\\\\\\" + getEmail() + \\\\\\\"\\\\\\\" + \\\\\\\" creditCard:\\\\\\\" + getCreditCard() + \\\\\\\"\\\\\\\";\\\\n}\\\",\\n \\\"start_line\\\": 97,\\n \\\"end_line\\\": 101,\\n \\\"return_type\\\": \\\"java.lang.String\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"getUserID\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 98,\\n \\\"start_column\\\": 61,\\n \\\"end_line\\\": 98,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"getPassword\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 98,\\n \\\"start_column\\\": 103,\\n \\\"end_line\\\": 98,\\n \\\"end_column\\\": 115\\n },\\n {\\n \\\"method_name\\\": \\\"getFullName\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 99,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 99,\\n \\\"end_column\\\": 31\\n },\\n {\\n \\\"method_name\\\": \\\"getAddress\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 99,\\n \\\"start_column\\\": 66,\\n \\\"end_line\\\": 99,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"getEmail\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 99,\\n \\\"start_column\\\": 112,\\n \\\"end_line\\\": 99,\\n \\\"end_column\\\": 121\\n },\\n {\\n \\\"method_name\\\": \\\"getCreditCard\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 100,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 100,\\n \\\"end_column\\\": 33\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"updateAccountProfile(AccountProfileDataBean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#updateAccountProfile(AccountProfileDataBean)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"name\\\": \\\"profileData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n AccountProfileDataBean accountProfileData = null;\\\\n Connection conn = null;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:updateAccountProfileData - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", profileData.getUserID());\\\\n conn = getConn();\\\\n updateAccountProfile(conn, profileData);\\\\n accountProfileData = getAccountProfileData(conn, profileData.getUserID());\\\\n commit(conn);\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:getAccountProfileData -- error getting profile data\\\\\\\", e);\\\\n rollBack(conn, e);\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return accountProfileData;\\\\n}\\\",\\n \\\"start_line\\\": 1214,\\n \\\"end_line\\\": 1235,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1221,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1221,\\n \\\"end_column\\\": 116\\n },\\n {\\n \\\"method_name\\\": \\\"getUserID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1221,\\n \\\"start_column\\\": 93,\\n \\\"end_line\\\": 1221,\\n \\\"end_column\\\": 115\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1223,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 1223,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"updateAccountProfile\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\"\\n ],\\n \\\"start_line\\\": 1224,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1224,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getAccountProfileData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 1226,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 1226,\\n \\\"end_column\\\": 79\\n },\\n {\\n \\\"method_name\\\": \\\"getUserID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 1226,\\n \\\"start_column\\\": 56,\\n \\\"end_line\\\": 1226,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1227,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1227,\\n \\\"end_column\\\": 18\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1229,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1229,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 1230,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1230,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 1232,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 1232,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"accountProfileData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountProfileDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1216,\\n \\\"start_column\\\": 28,\\n \\\"end_line\\\": 1216,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 1217,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 1217,\\n \\\"end_column\\\": 26\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String, Object)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message, Object parm1)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Object\\\",\\n \\\"name\\\": \\\"parm1\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n trace(message + \\\\\\\"(\\\\\\\" + parm1 + \\\\\\\")\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 83,\\n \\\"end_line\\\": 85,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 84,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 84,\\n \\\"end_column\\\": 38\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"sell(String, Integer, int)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#sell(String, Integer)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\",\\n \\\"@NotNull\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"userID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"holdingID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"int\\\",\\n \\\"name\\\": \\\"orderProcessingMode\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Connection conn = null;\\\\n OrderDataBean orderData = null;\\\\n //UserTransaction txn = null;\\\\n /*\\\\n * total = (quantity * purchasePrice) + orderFee\\\\n */\\\\n BigDecimal total;\\\\n try {\\\\n Log.trace(\\\\\\\"TradeDirect:sell - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", userID, holdingID);\\\\n if (!inSession && orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n Log.trace(\\\\\\\"TradeDirect:sell create/begin global transaction\\\\\\\");\\\\n txn.begin();\\\\n setInGlobalTxn(true);\\\\n }\\\\n conn = getConn();\\\\n AccountDataBean accountData = getAccountData(conn, userID);\\\\n HoldingDataBean holdingData = getHoldingData(conn, holdingID.intValue());\\\\n QuoteDataBean quoteData = null;\\\\n if (holdingData != null) {\\\\n quoteData = getQuoteData(conn, holdingData.getQuoteID());\\\\n }\\\\n if ((accountData == null) || (holdingData == null) || (quoteData == null)) {\\\\n String error = \\\\\\\"TradeDirect:sell -- error selling stock -- unable to find: \\\\\\\\n\\\\\\\\taccount=\\\\\\\" + accountData + \\\\\\\"\\\\\\\\n\\\\\\\\tholding=\\\\\\\" + holdingData + \\\\\\\"\\\\\\\\n\\\\\\\\tquote=\\\\\\\" + quoteData + \\\\\\\"\\\\\\\\nfor user: \\\\\\\" + userID + \\\\\\\" and holdingID: \\\\\\\" + holdingID;\\\\n Log.debug(error);\\\\n if (getInGlobalTxn()) {\\\\n txn.rollback();\\\\n } else {\\\\n rollBack(conn, new Exception(error));\\\\n }\\\\n orderData = new OrderDataBean();\\\\n orderData.setOrderStatus(\\\\\\\"cancelled\\\\\\\");\\\\n return orderData;\\\\n }\\\\n double quantity = holdingData.getQuantity();\\\\n orderData = createOrder(accountData, quoteData, holdingData, \\\\\\\"sell\\\\\\\", quantity);\\\\n // Set the holdingSymbol purchaseDate to selling to signify the sell\\\\n // is \\\\\\\"inflight\\\\\\\"\\\\n updateHoldingStatus(conn, holdingData.getHoldingID(), holdingData.getQuoteID());\\\\n // UPDATE -- account should be credited during completeOrder\\\\n BigDecimal price = quoteData.getPrice();\\\\n BigDecimal orderFee = orderData.getOrderFee();\\\\n total = (new BigDecimal(quantity).multiply(price)).subtract(orderFee);\\\\n creditAccountBalance(conn, accountData, total);\\\\n try {\\\\n if (orderProcessingMode == TradeConfig.SYNCH) {\\\\n completeOrder(conn, orderData.getOrderID());\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH) {\\\\n this.completeOrderAsync(orderData.getOrderID(), true);\\\\n } else if (orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n queueOrder(orderData.getOrderID(), true);\\\\n }\\\\n } catch (JMSException je) {\\\\n Log.error(\\\\\\\"TradeBean:sell(\\\\\\\" + userID + \\\\\\\",\\\\\\\" + holdingID + \\\\\\\") --> failed to queueOrder\\\\\\\", je);\\\\n cancelOrder(conn, orderData.getOrderID());\\\\n }\\\\n orderData = getOrderData(conn, orderData.getOrderID().intValue());\\\\n if (!inSession && orderProcessingMode == TradeConfig.ASYNCH_2PHASE) {\\\\n Log.trace(\\\\\\\"TradeDirect:sell committing global transaction\\\\\\\");\\\\n txn.commit();\\\\n setInGlobalTxn(false);\\\\n } else {\\\\n commit(conn);\\\\n }\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeDirect:sell error\\\\\\\", e);\\\\n if (getInGlobalTxn()) {\\\\n txn.rollback();\\\\n } else {\\\\n rollBack(conn, e);\\\\n }\\\\n } finally {\\\\n releaseConn(conn);\\\\n }\\\\n return orderData;\\\\n}\\\",\\n \\\"start_line\\\": 383,\\n \\\"end_line\\\": 482,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.txn\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.ASYNCH_2PHASE\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig.SYNCH\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.math.BigDecimal\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"javax.transaction.UserTransaction\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 397,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 397,\\n \\\"end_column\\\": 90\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 402,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 402,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"begin\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 404,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 404,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"setInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 405,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 405,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"getConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 408,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 408,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"getAccountData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 410,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 410,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 37,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 58,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 77\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 414,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 414,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 414,\\n \\\"start_column\\\": 40,\\n \\\"end_line\\\": 414,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"debug\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 420,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 420,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 421,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 421,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 422,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 422,\\n \\\"end_column\\\": 24\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 424,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 424,\\n \\\"end_column\\\": 46\\n },\\n {\\n \\\"method_name\\\": \\\"setOrderStatus\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 427,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 427,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getQuantity\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 431,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 431,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"createOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 433,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 433,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"updateHoldingStatus\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 437,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 437,\\n \\\"end_column\\\": 85\\n },\\n {\\n \\\"method_name\\\": \\\"getHoldingID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 437,\\n \\\"start_column\\\": 33,\\n \\\"end_line\\\": 437,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"getQuoteID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 437,\\n \\\"start_column\\\": 61,\\n \\\"end_line\\\": 437,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"getPrice\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 440,\\n \\\"start_column\\\": 26,\\n \\\"end_line\\\": 440,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderFee\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 441,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 441,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"subtract\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 442,\\n \\\"start_column\\\": 15,\\n \\\"end_line\\\": 442,\\n \\\"end_column\\\": 75\\n },\\n {\\n \\\"method_name\\\": \\\"multiply\\\",\\n \\\"declaring_type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 442,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 442,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"creditAccountBalance\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 443,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 443,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 447,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 447,\\n \\\"end_column\\\": 53\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 447,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 447,\\n \\\"end_column\\\": 52\\n },\\n {\\n \\\"method_name\\\": \\\"completeOrderAsync\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 449,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 449,\\n \\\"end_column\\\": 63\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 449,\\n \\\"start_column\\\": 35,\\n \\\"end_line\\\": 449,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"queueOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.Integer\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 451,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 451,\\n \\\"end_column\\\": 50\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 451,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 451,\\n \\\"end_column\\\": 43\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.jms.JMSException\\\"\\n ],\\n \\\"start_line\\\": 454,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 454,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"cancelOrder\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 456,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 456,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 456,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 456,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderData\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 459,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 459,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 459,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 459,\\n \\\"end_column\\\": 70\\n },\\n {\\n \\\"method_name\\\": \\\"getOrderID\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 459,\\n \\\"start_column\\\": 38,\\n \\\"end_line\\\": 459,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 463,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 463,\\n \\\"end_column\\\": 67\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 465,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 465,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"setInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 466,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 466,\\n \\\"end_column\\\": 29\\n },\\n {\\n \\\"method_name\\\": \\\"commit\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 468,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 468,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 471,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 471,\\n \\\"end_column\\\": 44\\n },\\n {\\n \\\"method_name\\\": \\\"getInGlobalTxn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 472,\\n \\\"start_column\\\": 11,\\n \\\"end_line\\\": 472,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"method_name\\\": \\\"rollback\\\",\\n \\\"declaring_type\\\": \\\"javax.transaction.UserTransaction\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 473,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 473,\\n \\\"end_column\\\": 22\\n },\\n {\\n \\\"method_name\\\": \\\"rollBack\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 475,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 475,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"releaseConn\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.sql.Connection\\\"\\n ],\\n \\\"start_line\\\": 478,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 478,\\n \\\"end_column\\\": 23\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"conn\\\",\\n \\\"type\\\": \\\"java.sql.Connection\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 386,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 386,\\n \\\"end_column\\\": 26\\n },\\n {\\n \\\"name\\\": \\\"orderData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.OrderDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 387,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 387,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"name\\\": \\\"total\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"\\\",\\n \\\"start_line\\\": 393,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 393,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"name\\\": \\\"accountData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.AccountDataBean\\\",\\n \\\"initializer\\\": \\\"getAccountData(conn, userID)\\\",\\n \\\"start_line\\\": 410,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 410,\\n \\\"end_column\\\": 64\\n },\\n {\\n \\\"name\\\": \\\"holdingData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.HoldingDataBean\\\",\\n \\\"initializer\\\": \\\"getHoldingData(conn, holdingID.intValue())\\\",\\n \\\"start_line\\\": 411,\\n \\\"start_column\\\": 23,\\n \\\"end_line\\\": 411,\\n \\\"end_column\\\": 78\\n },\\n {\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"null\\\",\\n \\\"start_line\\\": 412,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 412,\\n \\\"end_column\\\": 36\\n },\\n {\\n \\\"name\\\": \\\"error\\\",\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"initializer\\\": \\\"\\\\\\\"TradeDirect:sell -- error selling stock -- unable to find: \\\\\\\\n\\\\\\\\taccount=\\\\\\\" + accountData + \\\\\\\"\\\\\\\\n\\\\\\\\tholding=\\\\\\\" + holdingData + \\\\\\\"\\\\\\\\n\\\\\\\\tquote=\\\\\\\" + quoteData + \\\\\\\"\\\\\\\\nfor user: \\\\\\\" + userID + \\\\\\\" and holdingID: \\\\\\\" + holdingID\\\",\\n \\\"start_line\\\": 418,\\n \\\"start_column\\\": 16,\\n \\\"end_line\\\": 419,\\n \\\"end_column\\\": 97\\n },\\n {\\n \\\"name\\\": \\\"quantity\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"initializer\\\": \\\"holdingData.getQuantity()\\\",\\n \\\"start_line\\\": 431,\\n \\\"start_column\\\": 14,\\n \\\"end_line\\\": 431,\\n \\\"end_column\\\": 49\\n },\\n {\\n \\\"name\\\": \\\"price\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"quoteData.getPrice()\\\",\\n \\\"start_line\\\": 440,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 440,\\n \\\"end_column\\\": 45\\n },\\n {\\n \\\"name\\\": \\\"orderFee\\\",\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"initializer\\\": \\\"orderData.getOrderFee()\\\",\\n \\\"start_line\\\": 441,\\n \\\"start_column\\\": 18,\\n \\\"end_line\\\": 441,\\n \\\"end_column\\\": 51\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 14\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"queueOrder(Integer, boolean)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see TradeServices#queueOrder(Integer)\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public void queueOrder(Integer orderID, boolean twoPhase) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.Integer\\\",\\n \\\"name\\\": \\\"orderID\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"twoPhase\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n Log.trace(\\\\\\\"TradeDirect:queueOrder - inSession(\\\\\\\" + this.inSession + \\\\\\\")\\\\\\\", orderID);\\\\n try (JMSContext context = queueConnectionFactory.createContext()) {\\\\n TextMessage message = context.createTextMessage();\\\\n message.setStringProperty(\\\\\\\"command\\\\\\\", \\\\\\\"neworder\\\\\\\");\\\\n message.setIntProperty(\\\\\\\"orderID\\\\\\\", orderID.intValue());\\\\n message.setBooleanProperty(\\\\\\\"twoPhase\\\\\\\", twoPhase);\\\\n message.setBooleanProperty(\\\\\\\"direct\\\\\\\", true);\\\\n message.setLongProperty(\\\\\\\"publishTime\\\\\\\", System.currentTimeMillis());\\\\n message.setText(\\\\\\\"neworder: orderID=\\\\\\\" + orderID + \\\\\\\" runtimeMode=Direct twoPhase=\\\\\\\" + twoPhase);\\\\n context.createProducer().send(tradeBrokerQueue, message);\\\\n } catch (Exception e) {\\\\n // pass the exception\\\\n throw e;\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 487,\\n \\\"end_line\\\": 508,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.tradeBrokerQueue\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.queueConnectionFactory\\\",\\n \\\"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect.inSession\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.jms.JMSContext\\\",\\n \\\"javax.jms.TextMessage\\\",\\n \\\"java.lang.System\\\",\\n \\\"javax.jms.JMSProducer\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"java.lang.Integer\\\",\\n \\\"javax.jms.QueueConnectionFactory\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Integer\\\"\\n ],\\n \\\"start_line\\\": 491,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 491,\\n \\\"end_column\\\": 84\\n },\\n {\\n \\\"method_name\\\": \\\"createContext\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.QueueConnectionFactory\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 494,\\n \\\"start_column\\\": 31,\\n \\\"end_line\\\": 494,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"method_name\\\": \\\"createTextMessage\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 495,\\n \\\"start_column\\\": 29,\\n \\\"end_line\\\": 495,\\n \\\"end_column\\\": 55\\n },\\n {\\n \\\"method_name\\\": \\\"setStringProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 497,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 497,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setIntProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 498,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 498,\\n \\\"end_column\\\": 59\\n },\\n {\\n \\\"method_name\\\": \\\"intValue\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Integer\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 498,\\n \\\"start_column\\\": 41,\\n \\\"end_line\\\": 498,\\n \\\"end_column\\\": 58\\n },\\n {\\n \\\"method_name\\\": \\\"setBooleanProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 499,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 499,\\n \\\"end_column\\\": 54\\n },\\n {\\n \\\"method_name\\\": \\\"setBooleanProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 500,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 500,\\n \\\"end_column\\\": 48\\n },\\n {\\n \\\"method_name\\\": \\\"setLongProperty\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 501,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 501,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentTimeMillis\\\",\\n \\\"declaring_type\\\": \\\"java.lang.System\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 501,\\n \\\"start_column\\\": 46,\\n \\\"end_line\\\": 501,\\n \\\"end_column\\\": 71\\n },\\n {\\n \\\"method_name\\\": \\\"setText\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 502,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 502,\\n \\\"end_column\\\": 98\\n },\\n {\\n \\\"method_name\\\": \\\"send\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSProducer\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.jms.Queue\\\",\\n \\\"javax.jms.TextMessage\\\"\\n ],\\n \\\"start_line\\\": 504,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 504,\\n \\\"end_column\\\": 62\\n },\\n {\\n \\\"method_name\\\": \\\"createProducer\\\",\\n \\\"declaring_type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 504,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 504,\\n \\\"end_column\\\": 30\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"context\\\",\\n \\\"type\\\": \\\"javax.jms.JMSContext\\\",\\n \\\"initializer\\\": \\\"queueConnectionFactory.createContext()\\\",\\n \\\"start_line\\\": 494,\\n \\\"start_column\\\": 21,\\n \\\"end_line\\\": 494,\\n \\\"end_column\\\": 68\\n },\\n {\\n \\\"name\\\": \\\"message\\\",\\n \\\"type\\\": \\\"javax.jms.TextMessage\\\",\\n \\\"initializer\\\": \\\"context.createTextMessage()\\\",\\n \\\"start_line\\\": 495,\\n \\\"start_column\\\": 19,\\n \\\"end_line\\\": 495,\\n \\\"end_column\\\": 55\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.direct.TradeDirect\"\n}",
- "type": "DATA_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"size()\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see AbstractCollection#size()\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public int size()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return (max - min) + 1;\\\\n}\\\",\\n \\\"start_line\\\": 51,\\n \\\"end_line\\\": 54,\\n \\\"return_type\\\": \\\"int\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.KeyBlock.min\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.KeyBlock.max\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.KeyBlock\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"printCollection(Collection)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void printCollection(Collection> c)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.util.Collection>\\\",\\n \\\"name\\\": \\\"c\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log(\\\\\\\"\\\\\\\\t---Log.printCollection -- collection size=\\\\\\\" + c.size());\\\\n Iterator> it = c.iterator();\\\\n while (it.hasNext()) {\\\\n log(\\\\\\\"\\\\\\\\t\\\\\\\\t\\\\\\\" + it.next().toString());\\\\n }\\\\n log(\\\\\\\"\\\\\\\\t---Log.printCollection -- complete\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 135,\\n \\\"end_line\\\": 143,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"java.util.Iterator>\\\"\\n ],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.util.Collection>\\\",\\n \\\"java.util.Iterator>\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 136,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 136,\\n \\\"end_column\\\": 66\\n },\\n {\\n \\\"method_name\\\": \\\"size\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 136,\\n \\\"start_column\\\": 58,\\n \\\"end_line\\\": 136,\\n \\\"end_column\\\": 65\\n },\\n {\\n \\\"method_name\\\": \\\"iterator\\\",\\n \\\"declaring_type\\\": \\\"java.util.Collection>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 137,\\n \\\"start_column\\\": 22,\\n \\\"end_line\\\": 137,\\n \\\"end_column\\\": 33\\n },\\n {\\n \\\"method_name\\\": \\\"hasNext\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 139,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 139,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 140,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 140,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"toString\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 140,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 140,\\n \\\"end_column\\\": 39\\n },\\n {\\n \\\"method_name\\\": \\\"next\\\",\\n \\\"declaring_type\\\": \\\"java.util.Iterator>\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 140,\\n \\\"start_column\\\": 20,\\n \\\"end_line\\\": 140,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 142,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 142,\\n \\\"end_column\\\": 47\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"it\\\",\\n \\\"type\\\": \\\"java.util.Iterator>\\\",\\n \\\"initializer\\\": \\\"c.iterator()\\\",\\n \\\"start_line\\\": 137,\\n \\\"start_column\\\": 17,\\n \\\"end_line\\\": 137,\\n \\\"end_column\\\": 33\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 2\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"size()\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see AbstractCollection#size()\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public int size()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return (max - min) + 1;\\\\n}\\\",\\n \\\"start_line\\\": 51,\\n \\\"end_line\\\": 54,\\n \\\"return_type\\\": \\\"int\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.KeyBlock.min\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.KeyBlock.max\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.KeyBlock\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"add(QuoteDataBean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public boolean add(QuoteDataBean quoteData)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n int symbolNumber = new Integer(quoteData.getSymbol().substring(2));\\\\n if (symbolNumber < TradeConfig.getMAX_QUOTES() * TradeConfig.getListQuotePriceChangeFrequency() * 0.01) {\\\\n list.add(0, quoteData);\\\\n // Add stock, remove if needed\\\\n if (list.size() > maxSize) {\\\\n list.remove(maxSize);\\\\n }\\\\n quotePriceChangeEvent.fireAsync(\\\\\\\"quotePriceChange for symbol: \\\\\\\" + quoteData.getSymbol(), NotificationOptions.builder().setExecutor(mes).build());\\\\n }\\\\n return true;\\\\n}\\\",\\n \\\"start_line\\\": 52,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.maxSize\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.list\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.mes\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.quotePriceChangeEvent\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"java.util.List\\\",\\n \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.enterprise.event.Event\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"substring\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getMAX_QUOTES\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getListQuotePriceChangeFrequency\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 100\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 57,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 57,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"size\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 60,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 60,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 61,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 61,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"fireAsync\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.Event\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.enterprise.event.NotificationOptions\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 150\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 73,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 93\\n },\\n {\\n \\\"method_name\\\": \\\"build\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 149\\n },\\n {\\n \\\"method_name\\\": \\\"setExecutor\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.enterprise.concurrent.ManagedExecutorService\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"builder\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 124\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"symbolNumber\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"new Integer(quoteData.getSymbol().substring(2))\\\",\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 70\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"add(QuoteDataBean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public boolean add(QuoteDataBean quoteData)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"name\\\": \\\"quoteData\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n int symbolNumber = new Integer(quoteData.getSymbol().substring(2));\\\\n if (symbolNumber < TradeConfig.getMAX_QUOTES() * TradeConfig.getListQuotePriceChangeFrequency() * 0.01) {\\\\n list.add(0, quoteData);\\\\n // Add stock, remove if needed\\\\n if (list.size() > maxSize) {\\\\n list.remove(maxSize);\\\\n }\\\\n quotePriceChangeEvent.fireAsync(\\\\\\\"quotePriceChange for symbol: \\\\\\\" + quoteData.getSymbol(), NotificationOptions.builder().setExecutor(mes).build());\\\\n }\\\\n return true;\\\\n}\\\",\\n \\\"start_line\\\": 52,\\n \\\"end_line\\\": 66,\\n \\\"return_type\\\": \\\"boolean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.maxSize\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.list\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.mes\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList.quotePriceChangeEvent\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"java.util.List\\\",\\n \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"javax.enterprise.event.Event\\\",\\n \\\"java.lang.String\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"substring\\\",\\n \\\"declaring_type\\\": \\\"java.lang.String\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 69\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 36,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 56\\n },\\n {\\n \\\"method_name\\\": \\\"getMAX_QUOTES\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 25,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 51\\n },\\n {\\n \\\"method_name\\\": \\\"getListQuotePriceChangeFrequency\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.TradeConfig\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 56,\\n \\\"start_column\\\": 55,\\n \\\"end_line\\\": 56,\\n \\\"end_column\\\": 100\\n },\\n {\\n \\\"method_name\\\": \\\"add\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 57,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 57,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"size\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 60,\\n \\\"start_column\\\": 10,\\n \\\"end_line\\\": 60,\\n \\\"end_column\\\": 20\\n },\\n {\\n \\\"method_name\\\": \\\"remove\\\",\\n \\\"declaring_type\\\": \\\"java.util.List\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 61,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 61,\\n \\\"end_column\\\": 28\\n },\\n {\\n \\\"method_name\\\": \\\"fireAsync\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.Event\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"javax.enterprise.event.NotificationOptions\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 7,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 150\\n },\\n {\\n \\\"method_name\\\": \\\"getSymbol\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 73,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 93\\n },\\n {\\n \\\"method_name\\\": \\\"build\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 149\\n },\\n {\\n \\\"method_name\\\": \\\"setExecutor\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions.Builder\\\",\\n \\\"argument_types\\\": [\\n \\\"javax.enterprise.concurrent.ManagedExecutorService\\\"\\n ],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 141\\n },\\n {\\n \\\"method_name\\\": \\\"builder\\\",\\n \\\"declaring_type\\\": \\\"javax.enterprise.event.NotificationOptions\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 63,\\n \\\"start_column\\\": 96,\\n \\\"end_line\\\": 63,\\n \\\"end_column\\\": 124\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"symbolNumber\\\",\\n \\\"type\\\": \\\"int\\\",\\n \\\"initializer\\\": \\\"new Integer(quoteData.getSymbol().substring(2))\\\",\\n \\\"start_line\\\": 54,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 54,\\n \\\"end_column\\\": 70\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 3\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.RecentQuotePriceChangeList\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"size()\\\",\\n \\\"comment\\\": \\\"/**\\\\n * @see AbstractCollection#size()\\\\n */\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public int size()\\\",\\n \\\"parameters\\\": [],\\n \\\"code\\\": \\\"{\\\\n return (max - min) + 1;\\\\n}\\\",\\n \\\"start_line\\\": 51,\\n \\\"end_line\\\": 54,\\n \\\"return_type\\\": \\\"int\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.KeyBlock.min\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.KeyBlock.max\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.KeyBlock\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n try {\\\\n QuoteDataBean quote = new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0);\\\\n entityManager.persist(quote);\\\\n Log.trace(\\\\\\\"TradeSLSBBean:createQuote-->\\\\\\\" + quote);\\\\n return quote;\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createQuote -- exception creating Quote\\\\\\\", e);\\\\n throw new EJBException(e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 349,\\n \\\"end_line\\\": 362,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 81\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0)\\\",\\n \\\"start_line\\\": 352,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 352,\\n \\\"end_column\\\": 106\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"QuoteDataBean(String, String, double, BigDecimal, BigDecimal, BigDecimal, BigDecimal, double)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean(String symbol, String companyName, double volume, BigDecimal price, BigDecimal open, BigDecimal low, BigDecimal high, double change)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"volume\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"open\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"low\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"high\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"double\\\",\\n \\\"name\\\": \\\"change\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n setSymbol(symbol);\\\\n setCompanyName(companyName);\\\\n setVolume(volume);\\\\n setPrice(price);\\\\n setOpen(open);\\\\n setLow(low);\\\\n setHigh(high);\\\\n setChange(change);\\\\n}\\\",\\n \\\"start_line\\\": 85,\\n \\\"end_line\\\": 94,\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": true,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.price\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.volume\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.high\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.low\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.symbol\\\",\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean.companyName\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setSymbol\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 86,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 86,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"setCompanyName\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 87,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 87,\\n \\\"end_column\\\": 35\\n },\\n {\\n \\\"method_name\\\": \\\"setVolume\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 88,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 88,\\n \\\"end_column\\\": 25\\n },\\n {\\n \\\"method_name\\\": \\\"setPrice\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 89,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 89,\\n \\\"end_column\\\": 23\\n },\\n {\\n \\\"method_name\\\": \\\"setOpen\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 90,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 90,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"setLow\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 91,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 91,\\n \\\"end_column\\\": 19\\n },\\n {\\n \\\"method_name\\\": \\\"setHigh\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 92,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 92,\\n \\\"end_column\\\": 21\\n },\\n {\\n \\\"method_name\\\": \\\"setChange\\\",\\n \\\"declaring_type\\\": \\\"\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 93,\\n \\\"start_column\\\": 9,\\n \\\"end_line\\\": 93,\\n \\\"end_column\\\": 25\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n try {\\\\n QuoteDataBean quote = new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0);\\\\n entityManager.persist(quote);\\\\n Log.trace(\\\\\\\"TradeSLSBBean:createQuote-->\\\\\\\" + quote);\\\\n return quote;\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createQuote -- exception creating Quote\\\\\\\", e);\\\\n throw new EJBException(e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 349,\\n \\\"end_line\\\": 362,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 81\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0)\\\",\\n \\\"start_line\\\": 352,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 352,\\n \\\"end_column\\\": 106\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n tradeDirect.setInSession(true);\\\\n return tradeDirect.createQuote(symbol, companyName, price);\\\\n}\\\",\\n \\\"start_line\\\": 148,\\n \\\"end_line\\\": 152,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean.tradeDirect\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setInSession\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 150,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 150,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"createQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 151,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 151,\\n \\\"end_column\\\": 62\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean\"\n}",
- "type": "DATA_DEP",
- "weight": "1"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n try {\\\\n QuoteDataBean quote = new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0);\\\\n entityManager.persist(quote);\\\\n Log.trace(\\\\\\\"TradeSLSBBean:createQuote-->\\\\\\\" + quote);\\\\n return quote;\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createQuote -- exception creating Quote\\\\\\\", e);\\\\n throw new EJBException(e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 349,\\n \\\"end_line\\\": 362,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 81\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0)\\\",\\n \\\"start_line\\\": 352,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 352,\\n \\\"end_column\\\": 106\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"trace(String)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\",\\n \\\"static\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public static void trace(String message)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"message\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n log.log(Level.FINE, message + \\\\\\\" threadID=\\\\\\\" + Thread.currentThread());\\\\n}\\\",\\n \\\"start_line\\\": 75,\\n \\\"end_line\\\": 77,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.util.Log.log\\\",\\n \\\"java.util.logging.Level.FINE\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"java.lang.Thread\\\",\\n \\\"java.util.logging.Logger\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"log\\\",\\n \\\"declaring_type\\\": \\\"java.util.logging.Logger\\\",\\n \\\"argument_types\\\": [\\n \\\"java.util.logging.Level\\\",\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 72\\n },\\n {\\n \\\"method_name\\\": \\\"currentThread\\\",\\n \\\"declaring_type\\\": \\\"java.lang.Thread\\\",\\n \\\"argument_types\\\": [],\\n \\\"start_line\\\": 76,\\n \\\"start_column\\\": 50,\\n \\\"end_line\\\": 76,\\n \\\"end_column\\\": 71\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.util.Log\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n tradeDirect.setInSession(true);\\\\n return tradeDirect.createQuote(symbol, companyName, price);\\\\n}\\\",\\n \\\"start_line\\\": 148,\\n \\\"end_line\\\": 152,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean.tradeDirect\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setInSession\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 150,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 150,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"createQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 151,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 151,\\n \\\"end_column\\\": 62\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"setInSession(boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void setInSession(boolean inSession)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"inSession\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n throw new UnsupportedOperationException(\\\\\\\"TradeSLSBBean::setInGlobalTxn not supported\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 614,\\n \\\"end_line\\\": 617,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n tradeDirect.setInSession(true);\\\\n return tradeDirect.createQuote(symbol, companyName, price);\\\\n}\\\",\\n \\\"start_line\\\": 148,\\n \\\"end_line\\\": 152,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean.tradeDirect\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setInSession\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 150,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 150,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"createQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 151,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 151,\\n \\\"end_column\\\": 62\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"setInSession(boolean)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public void setInSession(boolean inSession)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"boolean\\\",\\n \\\"name\\\": \\\"inSession\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n throw new UnsupportedOperationException(\\\\\\\"DirectSLSBBean::setInGlobalTxn not supported\\\\\\\");\\\\n}\\\",\\n \\\"start_line\\\": 233,\\n \\\"end_line\\\": 236,\\n \\\"return_type\\\": \\\"void\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [],\\n \\\"called_method_declaring_types\\\": [],\\n \\\"call_sites\\\": [],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n tradeDirect.setInSession(true);\\\\n return tradeDirect.createQuote(symbol, companyName, price);\\\\n}\\\",\\n \\\"start_line\\\": 148,\\n \\\"end_line\\\": 152,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean.tradeDirect\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"setInSession\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"\\\"\\n ],\\n \\\"start_line\\\": 150,\\n \\\"start_column\\\": 5,\\n \\\"end_line\\\": 150,\\n \\\"end_column\\\": 34\\n },\\n {\\n \\\"method_name\\\": \\\"createQuote\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.interfaces.TradeServices\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.String\\\",\\n \\\"java.math.BigDecimal\\\"\\n ],\\n \\\"start_line\\\": 151,\\n \\\"start_column\\\": 12,\\n \\\"end_line\\\": 151,\\n \\\"end_column\\\": 62\\n }\\n ],\\n \\\"variable_declarations\\\": [],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.session2direct.DirectSLSBBean\"\n}",
- "target": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"createQuote(String, String, BigDecimal)\\\",\\n \\\"comment\\\": \\\"\\\",\\n \\\"annotations\\\": [\\n \\\"@Override\\\"\\n ],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [],\\n \\\"declaration\\\": \\\"public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price)\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"symbol\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.lang.String\\\",\\n \\\"name\\\": \\\"companyName\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.math.BigDecimal\\\",\\n \\\"name\\\": \\\"price\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n try {\\\\n QuoteDataBean quote = new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0);\\\\n entityManager.persist(quote);\\\\n Log.trace(\\\\\\\"TradeSLSBBean:createQuote-->\\\\\\\" + quote);\\\\n return quote;\\\\n } catch (Exception e) {\\\\n Log.error(\\\\\\\"TradeSLSBBean:createQuote -- exception creating Quote\\\\\\\", e);\\\\n throw new EJBException(e);\\\\n }\\\\n}\\\",\\n \\\"start_line\\\": 349,\\n \\\"end_line\\\": 362,\\n \\\"return_type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"is_implicit\\\": false,\\n \\\"is_constructor\\\": false,\\n \\\"referenced_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"accessed_fields\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean.entityManager\\\"\\n ],\\n \\\"called_method_declaring_types\\\": [\\n \\\"javax.persistence.EntityManager\\\",\\n \\\"com.ibm.websphere.samples.daytrader.util.Log\\\"\\n ],\\n \\\"call_sites\\\": [\\n {\\n \\\"method_name\\\": \\\"persist\\\",\\n \\\"declaring_type\\\": \\\"javax.persistence.EntityManager\\\",\\n \\\"argument_types\\\": [\\n \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\"\\n ],\\n \\\"start_line\\\": 353,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 353,\\n \\\"end_column\\\": 40\\n },\\n {\\n \\\"method_name\\\": \\\"trace\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\"\\n ],\\n \\\"start_line\\\": 355,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 355,\\n \\\"end_column\\\": 61\\n },\\n {\\n \\\"method_name\\\": \\\"error\\\",\\n \\\"declaring_type\\\": \\\"com.ibm.websphere.samples.daytrader.util.Log\\\",\\n \\\"argument_types\\\": [\\n \\\"java.lang.String\\\",\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"start_line\\\": 359,\\n \\\"start_column\\\": 13,\\n \\\"end_line\\\": 359,\\n \\\"end_column\\\": 81\\n }\\n ],\\n \\\"variable_declarations\\\": [\\n {\\n \\\"name\\\": \\\"quote\\\",\\n \\\"type\\\": \\\"com.ibm.websphere.samples.daytrader.entities.QuoteDataBean\\\",\\n \\\"initializer\\\": \\\"new QuoteDataBean(symbol, companyName, 0, price, price, price, price, 0)\\\",\\n \\\"start_line\\\": 352,\\n \\\"start_column\\\": 27,\\n \\\"end_line\\\": 352,\\n \\\"end_column\\\": 106\\n }\\n ],\\n \\\"cyclomatic_complexity\\\": 1\\n}\",\n \"class_interface_declarations\": \"com.ibm.websphere.samples.daytrader.impl.ejb3.TradeSLSBBean\"\n}",
- "type": "CONTROL_DEP",
- "weight": "2"
- },
- {
- "source": "{\n \"callable\": \"{\\n \\\"signature\\\": \\\"buildDB(java.io.PrintWriter, InputStream)\\\",\\n \\\"comment\\\": \\\"/**\\\\n * Re-create the DayTrader db tables and populate them OR just populate a DayTrader DB, logging to the provided output stream\\\\n */\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": [\\n \\\"public\\\"\\n ],\\n \\\"thrown_exceptions\\\": [\\n \\\"java.lang.Exception\\\"\\n ],\\n \\\"declaration\\\": \\\"public void buildDB(java.io.PrintWriter out, InputStream ddlFile) throws Exception\\\",\\n \\\"parameters\\\": [\\n {\\n \\\"type\\\": \\\"java.io.PrintWriter\\\",\\n \\\"name\\\": \\\"out\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n },\\n {\\n \\\"type\\\": \\\"java.io.InputStream\\\",\\n \\\"name\\\": \\\"ddlFile\\\",\\n \\\"annotations\\\": [],\\n \\\"modifiers\\\": []\\n }\\n ],\\n \\\"code\\\": \\\"{\\\\n String symbol, companyName;\\\\n // Give up gracefully after 10 errors\\\\n int errorCount = 0;\\\\n // TradeStatistics.statisticsEnabled=false; // disable statistics\\\\n out.println(\\\\\\\"
TradeBuildDB: Building DayTrader Database...
This operation will take several minutes. Please wait...\\\\\\\");\\\\n out.println(\\\\\\\"\\\\\\\");\\\\n if (ddlFile != null) {\\\\n //out.println(\\\\\\\"
TradeBuildDB: **** warPath= \\\\\\\"+warPath+\\\\\\\" ****\\\\\\\");\\\\n boolean success = false;\\\\n Object[] sqlBuffer = null;\\\\n //parse the DDL file and fill the SQL commands into a buffer\\\\n try {\\\\n sqlBuffer = parseDDLToBuffer(ddlFile);\\\\n } catch (Exception e) {\\\\n Log.error(e, \\\\\\\"TradeBuildDB: Unable to parse DDL file\\\\\\\");\\\\n out.println(\\\\\\\"
TradeBuildDB: **** Unable to parse DDL file for the specified database ****