Interface TetradSerializable
- All Superinterfaces:
Serializable
- All Known Subinterfaces:
Algorithm
,BayesIm
,BayesUpdater
,CptMap
,DataBox
,DataModel
,DataSet
,Distribution
,Expression
,ExpressionDescriptor
,ExpressionSignature
,Graph
,GraphRandomizer
,ICovarianceMatrix
,Im
,IndependenceWrapper
,Initializer
,ISemIm
,KnowledgeTransferable
,LagGraph
,ManipulatingBayesUpdater
,MultiDataSetAlgorithm
,Node
,RandomDistribution
,RandomGraph
,ScoreWrapper
,SemOptimizer
,Simulation
,Simulator
,TetradLoggerConfig
,TetradLoggerConfig.Event
,UpdateFunction
,Variable
,VariableSource
- All Known Implementing Classes:
AbstractBootstrapAlgorithm
,AbstractVariable
,ActiveLagGraph
,Algorithms
,AlmostCycleRemover
,ApproximateUpdater
,BasalInitializer
,BasicLagGraph
,BasisFunctionBicScore
,BasisFunctionBicTest
,BayesImProbs
,BayesNetSimulation
,BayesPm
,BdeuScore
,BdeuTest
,Beta
,Bfci
,BooleanFunction
,BooleanGlassFunction
,Boss
,BossDumb
,BossLingam
,BossPag
,BoxDataSet
,Bpc
,BpcAlgorithmType
,BpcTestType
,ByteDataBox
,Ccd
,CciTest
,Cfci
,ChiSquare
,ChiSquare
,ClassifierBayesUpdaterDiscrete
,Clusters
,Comparison
,ConditionalGaussianBicScore
,ConditionalGaussianLRT
,ConditionalGaussianSimulation
,ConstantExpression
,ContinuousDiscretizationSpec
,ContinuousVariable
,CorrelationMatrix
,CorrelationMatrixOnTheFly
,CovarianceMatrix
,CovarianceMatrixOnTheFly
,Cpc
,CptInvariantMarginalCalculator
,CptInvariantUpdater
,CptMapCounts
,CptMapProbs
,Cstar
,Cstar.Record
,Cyclic
,Dag
,Dagma
,DagScorer
,DataModelList
,DefaultTetradLoggerConfig
,DefaultTetradLoggerConfig.DefaultEvent
,DegenerateGaussianBicScore
,DegenerateGaussianLRT
,DelimiterType
,DirectLingam
,DirichletBayesIm
,Discrete
,DiscreteBicScore
,DiscreteBicTest
,DiscreteDiscretizationSpec
,DiscreteVariable
,DiscreteVariableType
,DishModel
,DoubleDataBox
,Eb
,EbicScore
,Edge
,EdgeListGraph
,EdgeTypeProbability
,Endpoint
,ErdosRenyi
,EvaluationExpression
,Evidence
,Exponential
,ExpressionDescriptor.Position
,ExternalAlgorithm
,FactorAnalysis
,Fas
,Fask
,FaskConcatenated
,FaskLofsConcatenated
,FaskOrig
,FaskPw
,FaskVote
,FasLofs
,Fci
,FciIod
,FciMax
,Fges
,FgesConcatenated
,FgesMb
,FgesMeasurement
,FirstInflection
,FisherZ
,FisherZScore
,FloatDataBox
,Fofc
,Ftfc
,Gamma
,GaussianPower
,GeneHistory
,GenePm
,GeneralizedSemIm
,GeneralizedSemPm
,GeneralSemSimulation
,GeneralSemSimulationSpecial1
,Gfci
,GicScores
,GICScoreTests
,Glasso
,GraphNode
,Grasp
,GraspFci
,GSquare
,IcaLingam
,IcaLingD
,Identifiability
,Images
,ImagesBoss
,IndependenceFact
,IndependenceFacts
,IndependenceResult
,IndexedConnectivity
,IndexedLagGraph
,IndexedParent
,Indicator
,IntDataBox
,JunctionTreeAlgorithm
,JunctionTreeUpdater
,Kci
,Knowledge
,KnowledgeEdge
,KnowledgeGroup
,LaggedEdge
,LaggedFactor
,LagGraph
,LeeHastieSimulation
,LinearFisherModel
,LinearFunction
,LinearSineSimulation
,LoadContinuousDataAndGraphs
,LoadContinuousDataAndSingleGraph
,LoadContinuousDataSmithSim
,LoadDataAndGraphs
,LoadDataFromFileWithoutGraph
,LogisticRegression
,LogisticRegression.Result
,LogNormal
,LongDataBox
,LvLite
,MagDgBicScore
,MagSemBicTest
,Manipulation
,ManualLagGraph
,ManualLagGraphParams
,Mapping
,Matrix
,MeasurementSimulator
,MeasurementSimulatorParams
,Mgm
,MixedDataBox
,MixtureOfGaussians
,MlBayesIm
,MlBayesImObs
,Mnlrlrt
,MSeparationScore
,MSeparationTest
,MultinomialLogisticRegressionWald
,MVPBicScore
,Mvplrt
,NLSemSimulation
,Normal
,NumberObjectDataSet
,OrderedPair
,PagSampleRfci
,ParamConstraint
,Parameter
,ParameterPair
,Parameters
,PartialCorrelationPdf
,Paths
,Pc
,Pcd
,PcMb
,PointXy
,Poisson
,PoissonPriorScore
,PoissonPriorTest
,Polynomial
,PolynomialFunction
,PolynomialTerm
,PositiveCorr
,PositiveCorrScore
,ProbabilisticTest
,Proposition
,R1
,R2
,R3
,RandomForward
,RandomSingleFactorMim
,RandomTwoFactorMim
,RegressionResult
,RestrictedBoss
,Rfci
,RfciBsc
,RowSummingExactUpdater
,Rskew
,RskewE
,ScaleFree
,ScoredGraph
,SemBicDTest
,SemBicScore
,SemBicScoreDeterministic
,SemBicTest
,SemEstimator
,SemEstimatorGibbsParams
,SemEvidence
,SemGraph
,SemIm
,SemManipulation
,SemOptimizerEm
,SemOptimizerPowell
,SemOptimizerRegression
,SemOptimizerRicf
,SemOptimizerScattershot
,SemPm
,SemProposition
,SemSimulation
,SemThenDiscretize
,SemUpdater
,SepsetMap
,Sextad
,Sextad
,ShortDataBox
,Simulations
,SingleDatasetSimulation
,SingleGraph
,SingleGraphAlg
,SingleValue
,Skew
,SkewE
,Sp
,SpFci
,Split
,SplitCasesSpec
,StabilitySelection
,StandardizedSemIm
,StandardizedSemIm.ParameterRange
,StandardizedSemSimulation
,StARS
,Statistics
,StoredCellProbs
,StoredCellProbsObs
,StoredLagGraphParams
,SvarFci
,SvarGfci
,Tanh
,TetradLogger.EmptyConfig
,TimeLagGraph
,TimeSeriesData
,TimeSeriesSemSimulation
,Triple
,TruncatedNormal
,Underlines
,Uniform
,UpdatedBayesIm
,VariableExpression
,Vector
,Version
,VerticalDoubleDataBox
,VerticalIntDataBox
,ZhangShenBoundScore
Interface to tag a class that is part of the set of serializable classes in the Tetrad API. These classes must have all of their serialiable fields marked with @serial tags, and they may only have serializable fields that are primitive, TetradSerializable, arrays of some TetradSerializable type, Collection or Map classes, or String or Class fields. They must also have a static final long field called 'serialVerUID' set to 23L. Classes in this set may never change their class name or package path once published, and the type of any serializable member field may never be changed to an incompatible type. (For primitives, change the type at all constitutes an incompatible change.) If these conditions are all met, then Tetrad sessions saved out in one version will load in later versions of Tetrad. They may load with incorrect information if, for instance, the name of a field is changed or the interpretation of that field changes. So in general, when making a class TetradSerializable, please make sure that its member fields all have good names (that you won't want to change later) and all have clear interpretations (that you won't want to change later).> 0
If that all sounds like a pain, the payoff is that even very large Tetrad sessions will load quickly. This isn't currently true, from what I can tell, for any XML renderer/parser on the market. If a Tetrad session contains a dataset with 50 and 5000 cases, for instance, binary serialization will load it in well under a second, whereas XML parsers that I've checked don't come back in under 5 minutes.> 0
The test class that checks the above conditions are TestSerialization, which in turn uses methods in TetradSerializableUtils. More details can be find there.> 0
See TestSerialization and TestSerializiableUtils.> 0
- Version:
- $Id: $Id
- Author:
- josephramsey