1 /*
2 * Copyright 2006-2010 Sam Adams <sea36 at users.sourceforge.net>
3 *
4 * This file is part of JNI-InChI.
5 *
6 * JNI-InChI is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published
8 * by the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * JNI-InChI is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with JNI-InChI. If not, see <http://www.gnu.org/licenses/>.
18 */
19 package net.sf.jniinchi;
20
21 /**
22 * Encapsulates output from InChI to structure conversion.
23 * @author Sam Adams
24 */
25 public class JniInchiOutputStructure extends JniInchiStructure {
26
27 /**
28 * Return status from conversion.
29 */
30 private INCHI_RET retStatus;
31
32 /**
33 * Error/warning messages generated.
34 */
35 private String message;
36
37 /**
38 * Log generated.
39 */
40 private String log;
41
42 /**
43 * <p>Warning flags, see INCHIDIFF in inchicmp.h.
44 *
45 * <p>[x][y]:
46 * <br>x=0 => Reconnected if present in InChI otherwise Disconnected/Normal
47 * <br>x=1 => Disconnected layer if Reconnected layer is present
48 * <br>y=1 => Main layer or Mobile-H
49 * <br>y=0 => Fixed-H layer
50 */
51 private long[][] warningFlags = new long[2][2];
52
53
54 public JniInchiOutputStructure(int ret, String message, String log, long w00, long w01, long w10, long w11) {
55 this(INCHI_RET.getValue(ret));
56 setMessage(message);
57 setLog(log);
58 setWarningFlags(w00, w01, w10, w11);
59 }
60
61
62 public JniInchiOutputStructure(INCHI_RET value) {
63 this.retStatus = value;
64 }
65
66
67 /**
68 * Gets return status from InChI process. OKAY and WARNING indicate
69 * InChI has been generated, in all other cases InChI generation
70 * has failed.
71 */
72 public INCHI_RET getReturnStatus() {
73 return retStatus;
74 }
75
76 /**
77 * Gets generated (error/warning) messages.
78 */
79 public String getMessage() {
80 return message;
81 }
82
83 /**
84 * Gets generated log.
85 */
86 public String getLog() {
87 return log;
88 }
89
90 /**
91 * <p>Returns warning flags, see INCHIDIFF in inchicmp.h.
92 *
93 * <p>[x][y]:
94 * <br>x=0 => Reconnected if present in InChI otherwise Disconnected/Normal
95 * <br>x=1 => Disconnected layer if Reconnected layer is present
96 * <br>y=1 => Main layer or Mobile-H
97 * <br>y=0 => Fixed-H layer
98 */
99 public long[][] getWarningFlags() {
100 return warningFlags;
101 }
102
103 protected void setLog(final String log) {
104 this.log = log;
105 }
106
107 protected void setMessage(final String message) {
108 this.message = message;
109 }
110
111 protected void setRetStatus(final INCHI_RET retStatus) {
112 this.retStatus = retStatus;
113 }
114
115 protected void setWarningFlags(final long[][] warningFlags) {
116 this.warningFlags = warningFlags;
117 }
118
119 protected void setWarningFlags(long f00, long f01, long f10, long f11) {
120 this.warningFlags = new long[][] {{f00, f01}, {f10, f11}};
121 }
122
123
124 }