glease / chemlib Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Lesser General Public License v2.1
License: GNU Lesser General Public License v2.1
Currently some classes' hashCode is npt as good as it could be. For example, AtomImpl should use a larger prime to wipe hash collisions.
Add JAXB extensions, in <xsd:appinfo>
.
Moved from #3
Moved from #3
This project yet doesn't have a regular building mechanism. All classes are compiled with eclipse, which isn't that good.
Candidate:
We may also let Travis handle building.
I'm ready for GA. Please see @1b8c7a35a6ead5261e2eb4bcfed663cbc48773ee
Because now we use hashmaps to speed up look ups, an id change will lead its components into harzard.
Now serializing any Element will cause the serialization of the whole database, which is bad. We'd better drop serialization support until all issue (#18) is resolved.
Note: By
Drop serialization support
I mean that forward-compatibility is not guaranteed. Serialized data should only be used for short term usage like RMI, not for long term storage.
Currently they won't be serialized.
For some reason, we need it comparable. At least we should have a working comparator for those who are hard to think of a natural order
All elements should have a scope. A scope maybe nested in another scope, i.e. has a parent scope. An element is identified with a property called id with type of String which distinct in the scope the element belongs to. An elements's ID uniqueness may not be tested in the parent scope and sibling scopes.
Currently the only way to find certain equations, reagents and substances is to manually iterate the entire collections everytime, which may be an expensive action. It would also be boring to do it manually.
Goal:
Atom
s' localizedName
and symbol
from other Atom that has these values set. Throw NormalizationException
if necessary.Reaction
s' id
s. (is this good? it seems to be tricky from the implementation perspective at the first glance)Reaction
could be added, or say binded to a ChemDatabase
without an id.)Reaction
with ID atom111-244
may conflict with an Atom
with index 111
and molMass 244
.Reaction
with reversed reactant and resultant, identical conditions and catalysts, same temperature but has a different heat generation (except one is 0). Open for suggestions, while those not-so-worthy suggestions won't be implemented by the default implementation but provided for the sake of plugin developers.Note:
Let there be some xml:
<equation>
<resultant reagent="s1" state="solid" />
......
<equation>
In fact s1 point to some substance, but in eclipse there is no error message at all. The key/keyref constraint should generate an exception here.
The javadoc generated by xjc is obscure. Need a thorough clean up.
This issue is of excessive low priority.
There are some hard limit on JAXB, I have to do it all manually.
Well, after all, I still forget to add that.
There are some hard limit on JAXB, I have to do it all manually.
As stated in Apache License 2.0, I should:
OH MY F*CKING GOD WHAT SHOULD I DO!! THOSE LAWYERS DESERVE A PAINFUL -
Clamed down. HELP WANTED.
Currently we have atom
s, but no element. In general it will be OK, but it creates lots of issues. Mostly it's where the weird Normalizations come from. Should we isolate the concept into two parts: Element
and Isotope
?
The Isotope
generally replace the existing Atom
, and Element
is a higher level of abstraction. Atom
s' states like index, localizedName, averageMolMass is pulled up to the Element
, and the remaining part is named Isotope
. An Element
could have multiple Isotope
, just as the real world elements have.
ELement
and Isotope
. This contract is hard to write.Isotope
s into consideration (like nuclear reactions, though they are not supported yet, I think we should make the types extensive enough so that we could implement it later). And that need a rewrite of some sort.Should we use this abstraction despite the difficulties of implementing?
Left over of @0186f5d78e5aa9a46a822e08c60e329d932605fe. This is of excessive low priority.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.