00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 @import "CPObject.j"
00024 @import "CPString.j"
00025
00030 @implementation CPData : CPObject
00031 {
00032 id _plistObject;
00033 }
00034
00035 + (id)alloc
00036 {
00037 return new objj_data();
00038 }
00039
00040 + (CPData)data
00041 {
00042 return [[self alloc] initWithPlistObject:nil];
00043 }
00044
00045 + (CPData)dataWithString:(CPString)aString
00046 {
00047 return [[self alloc] initWithString:aString];
00048 }
00049
00050 + (CPData)dataWithPlistObject:(id)aPlistObject
00051 {
00052 return [[self alloc] initWithPlistObject:aPlistObject];
00053 }
00054
00055 - (id)initWithString:(CPString)aString
00056 {
00057 self = [super init];
00058
00059 if (self)
00060 string = aString;
00061
00062 return self;
00063 }
00064
00065 - (id)initWithPlistObject:(id)aPlistObject
00066 {
00067 self = [super init];
00068
00069 if (self)
00070 _plistObject = aPlistObject;
00071
00072 return self;
00073 }
00074
00075 - (int)length
00076 {
00077 return [[self string] length];
00078 }
00079
00080 - (CPString)description
00081 {
00082 return string;
00083 }
00084
00085 - (CPString)string
00086 {
00087 if (!string && _plistObject)
00088 string = [[CPPropertyListSerialization dataFromPropertyList:_plistObject format:CPPropertyList280NorthFormat_v1_0 errorDescription:NULL] string];
00089
00090 return string;
00091 }
00092
00093 - (void)setString:(CPString)aString
00094 {
00095 string = aString;
00096 _plistObject = nil;
00097 }
00098
00099 - (id)plistObject
00100 {
00101 if (string && !_plistObject)
00102
00103 _plistObject = [CPPropertyListSerialization propertyListFromData:self format:0 errorDescription:NULL];
00104
00105 return _plistObject;
00106 }
00107
00108 - (void)setPlistObject:(id)aPlistObject
00109 {
00110 string = nil;
00111 _plistObject = aPlistObject;
00112 }
00113
00114 @end
00115
00116 objj_data.prototype.isa = CPData;