[
https://issues.apache.org/jira/browse/METRON-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16314736#comment-16314736
]
ASF GitHub Bot commented on METRON-1382:
----------------------------------------
Github user nickwallen commented on a diff in the pull request:
https://github.com/apache/metron/pull/884#discussion_r160029657
--- Diff:
metron-stellar/stellar-common/src/main/java/org/apache/metron/stellar/common/shell/StellarResult.java
---
@@ -0,0 +1,185 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.metron.stellar.common.shell;
+
+import java.util.Optional;
+
+/**
+ * The result of executing a Stellar expression within a
StellarShellExecutor.
+ */
+public class StellarResult {
+
+ /**
+ * Indicates that a Stellar expression resulted in either
+ * success or an error.
+ */
+ enum Status {
+ SUCCESS,
+ ERROR,
+ TERMINATE
+ }
+
+ /**
+ * Indicates either success or failure of executing the expression.
+ */
+ private Status status;
+
+ /**
+ * The result of executing the expression. Only valid when execution is
successful.
+ */
+ private Optional<Object> value;
+
+ /**
+ * The error that occurred when executing the expression. Only valid
when execution results in an error.
+ */
+ private Optional<Throwable> exception;
+
+ /**
+ * Indicates if the value is null;
+ *
+ * A null is a valid result, but cannot be unwrapped from an Optional.
Because of this
+ * a boolean is used to indicate if the result is a success and the
value is null.
+ */
+ private boolean isValueNull;
+
+ /**
+ * Private constructor to construct a result indicate success. Use the
static methods; success.
+ *
+ * @param status Indicates success or failure.
+ * @param value The value of executing the expression.
+ */
+ private StellarResult(Status status, Object value) {
+ this.status = status;
+ this.value = Optional.ofNullable(value);
+ this.exception = Optional.empty();
+ this.isValueNull = (value == null);
--- End diff --
There was no way for this to cause a problem because the constructors are
private. But I added unit tests and your suggested check just to be sure.
> Run Stellar in a Zeppelin Notebook
> ----------------------------------
>
> Key: METRON-1382
> URL: https://issues.apache.org/jira/browse/METRON-1382
> Project: Metron
> Issue Type: Improvement
> Reporter: Nick Allen
> Assignee: Nick Allen
>
> Create a Zeppelin interpreter that allows Stellar to run in a Zeppelin
> Notebook, the same way that it runs in the command-line driven REPL.
> This should include all of the Stellar "enhancements" available in the REPL
> that are not part of the core Stellar language including the following.
> * Variable assignment
> * Magics
> * Docstrings
> * Comments
> * quit
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)