Object FrogProvider::MakeKermit(Scope& scope) { #if defined(USE_CACHE) if (m_kermit) return *m_kermit; #endif Object frog = scope.NewObject(); frog.SetFlags(OL_FLAG_STATIC_NAME|OL_FLAG_LENGTH_NAME|OL_FLAG_STATIC_VALUE| OL_FLAG_ALLOW_DUPLICATES); frog.Add(Frog_Id, OL_GuidValue( 0x1C6D09D2, 0xF1B6, 0x43F1, 0xB30B, 0xF774, 0x7822A29B)); frog.AddString(Frog_UserName, "kermit"); frog.AddString(Frog_First, "Kermit"); frog.AddString(Frog_Last, "Frog"); frog.AddString(Frog_Color, "Green"); frog.AddDate(Frog_Birthdate, Date(1955, 12, 3)); frog.AddNavigationLink(Frog_Friend, "Frogs('willie')"); { Array arr = scope.NewArray(); arr.AppendDate(Date(2015, 12, 31)); arr.AppendDate(Date(2015, 12, 24)); arr.AppendDate(Date(2015, 12, 25)); frog.AddArray(Frog_Holidays, arr); } #if defined(USE_CACHE) m_kermit = new Object(frog); #endif return frog; }