package Ġcom . mime tis . dot m im . sync . sqlite Ċ Ċ import Ġcom . mime tis . dot m im . sync . builders . Db Metadata Ċ import Ġcom . mime tis . dot m im . sync . set . Sync Column Ċ import Ġcom . mime tis . dot m im . sync . setup . DbType Ċ import Ġjava . util .* Ċ Ċ class ĠSql ite Db Metadata Ġ: ĠDb Metadata () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠisValid ( column Definition : ĠSync Column ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠtypeName Ġ= Ġcolumn Definition . original TypeName . lowercase ( Locale . getDefault ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( typeName . contains (" (" )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtypeName Ġ= ĠtypeName . substring ( 0 , ĠtypeName . indexOf (" (" )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( typeName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" integer ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" float ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" decimal ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bit ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bigint ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" numeric ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" blob ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" datetime ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" time ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" varchar ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" real " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate MaxLength ( typeName : ĠString , Ġis Unsigned : ĠBoolean , Ġis Unicode : ĠBoolean , ĠmaxLength : ĠInt ): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( maxLength Ġ> ĠInt . MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate Owner DbType ( typeName : ĠString , Ġis Unsigned : ĠBoolean , Ġis Unicode : ĠBoolean , ĠmaxLength : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtn Ġ= ĠtypeName ĊĠĠĠĠĠĠĠ Ġif Ġ( tn . contains (" (" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtn Ġ= Ġtn . substring ( 0 , ĠtypeName . indexOf (" (" )) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( tn . lowercase ( Locale . getDefault ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bit ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" integer ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bigint " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql ite Type . Integer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" numeric ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" decimal ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" real ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" float " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql ite Type . Real ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" blob ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql ite Type . Blob ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" datetime ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" time ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" varchar ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSql ite Type . Text ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠException (" this Ġtype Ġname Ġ$ tn Ġis Ġnot Ġsupported ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate Type ( owner Type : ĠAny ): ĠClass < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( owner Type Ġas ĠSql ite Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSql ite Type . Integer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSql ite Type . Real Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDouble :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSql ite Type . Text Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSql ite Type . Blob Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAny :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" this ĠDb Type Ġ$ owner Type Ġis Ġnot Ġsupported ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate DbType ( typeName : ĠString , Ġis Unsigned : ĠBoolean , Ġis Unicode : ĠBoolean , ĠmaxLength : ĠInt ): ĠDb Type Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtn Ġ= ĠtypeName ĊĠĠĠĠĠĠĠ Ġif Ġ( tn . contains (" (" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtn Ġ= Ġtn . substring ( 0 , ĠtypeName . indexOf (" (" )) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( tn . lowercase ( Locale . getDefault ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bit " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . Boolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" integer ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bigint " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . Int 6 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" numeric ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" real ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" float " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . Double ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" decimal " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . Decimal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" blob ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . Binary ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" datetime " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . DateTime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" time " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" varchar " Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDb Type . String ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠException (" this Ġtype Ġname Ġ$ tn Ġis Ġnot Ġsupported ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate Is Readonly ( column Definition : ĠSync Column ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġis Numeric Type ( typeName : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtn Ġ= ĠtypeName . lowercase ( Locale . getDefault ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( tn . contains (" (" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtn Ġ= ĠtypeName . substring ( 0 , Ġtn . indexOf (" (" )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtn Ġ== Ġ" numeric " Ġ|| Ġtn Ġ== Ġ" decimal " Ġ|| Ġtn Ġ== Ġ" real " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġtn Ġ== Ġ" integer " Ġ|| Ġtn Ġ== Ġ" bigint " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Text Type ( typeName : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtn Ġ= ĠtypeName . lowercase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġtn Ġ== Ġ" text " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupport Scale ( typeName : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtn Ġ= ĠtypeName . lowercase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġtn Ġ== Ġ" numeric " Ġ|| Ġtn Ġ== Ġ" decimal " Ġ|| Ġtn Ġ== Ġ" real " Ġ|| Ġtn Ġ== Ġ" f lot " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate Precision And Scale ( column Definition : ĠSync Column ): ĠPair < Byte , ĠByte > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( column Definition . precision , Ġcolumn Definition . scale ) ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate Precision ( column Definition : ĠSync Column ): ĠByte Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Definition . precision Ċ } Ċ