/gdata/calendar_resource/data.py
http://radioappz.googlecode.com/ · Python · 202 lines · 67 code · 42 blank · 93 comment · 9 complexity · 7630148003132f2ffabc41557f74c8f6 MD5 · raw file
- #!/usr/bin/python
- #
- # Copyright 2009 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- """Data model classes for parsing and generating XML for the Calendar
- Resource API."""
- __author__ = 'Vic Fryzel <vf@google.com>'
- import atom.core
- import atom.data
- import gdata.apps
- import gdata.data
- # This is required to work around a naming conflict between the Google
- # Spreadsheets API and Python's built-in property function
- pyproperty = property
- # The apps:property name of the resourceId property
- RESOURCE_ID_NAME = 'resourceId'
- # The apps:property name of the resourceCommonName property
- RESOURCE_COMMON_NAME_NAME = 'resourceCommonName'
- # The apps:property name of the resourceDescription property
- RESOURCE_DESCRIPTION_NAME = 'resourceDescription'
- # The apps:property name of the resourceType property
- RESOURCE_TYPE_NAME = 'resourceType'
- class AppsProperty(atom.core.XmlElement):
- """Represents an <apps:property> element in a Calendar Resource feed."""
- _qname = gdata.apps.APPS_TEMPLATE % 'property'
- name = 'name'
- value = 'value'
- class CalendarResourceEntry(gdata.data.GDEntry):
- """Represents a Calendar Resource entry in object form."""
- property = [AppsProperty]
- def _GetProperty(self, name):
- """Get the apps:property value with the given name.
- Args:
- name: string Name of the apps:property value to get.
- Returns:
- The apps:property value with the given name, or None if the name was
- invalid.
- """
- value = None
- for p in self.property:
- if p.name == name:
- value = p.value
- break
- return value
-
- def _SetProperty(self, name, value):
- """Set the apps:property value with the given name to the given value.
- Args:
- name: string Name of the apps:property value to set.
- value: string Value to give the apps:property value with the given name.
- """
- found = False
- for i in range(len(self.property)):
- if self.property[i].name == name:
- self.property[i].value = value
- found = True
- break
- if not found:
- self.property.append(AppsProperty(name=name, value=value))
- def GetResourceId(self):
- """Get the resource ID of this Calendar Resource object.
- Returns:
- The resource ID of this Calendar Resource object as a string or None.
- """
- return self._GetProperty(RESOURCE_ID_NAME)
- def SetResourceId(self, value):
- """Set the resource ID of this Calendar Resource object.
- Args:
- value: string The new resource ID value to give this object.
- """
- self._SetProperty(RESOURCE_ID_NAME, value)
- resource_id = pyproperty(GetResourceId, SetResourceId)
- def GetResourceCommonName(self):
- """Get the common name of this Calendar Resource object.
- Returns:
- The common name of this Calendar Resource object as a string or None.
- """
- return self._GetProperty(RESOURCE_COMMON_NAME_NAME)
- def SetResourceCommonName(self, value):
- """Set the common name of this Calendar Resource object.
- Args:
- value: string The new common name value to give this object.
- """
- self._SetProperty(RESOURCE_COMMON_NAME_NAME, value)
- resource_common_name = pyproperty(GetResourceCommonName,
- SetResourceCommonName)
- def GetResourceDescription(self):
- """Get the description of this Calendar Resource object.
- Returns:
- The description of this Calendar Resource object as a string or None.
- """
- return self._GetProperty(RESOURCE_DESCRIPTION_NAME)
- def SetResourceDescription(self, value):
- """Set the description of this Calendar Resource object.
-
- Args:
- value: string The new description value to give this object.
- """
- self._SetProperty(RESOURCE_DESCRIPTION_NAME, value)
- resource_description = pyproperty(GetResourceDescription,
- SetResourceDescription)
- def GetResourceType(self):
- """Get the type of this Calendar Resource object.
- Returns:
- The type of this Calendar Resource object as a string or None.
- """
- return self._GetProperty(RESOURCE_TYPE_NAME)
- def SetResourceType(self, value):
- """Set the type value of this Calendar Resource object.
- Args:
- value: string The new type value to give this object.
- """
- self._SetProperty(RESOURCE_TYPE_NAME, value)
- resource_type = pyproperty(GetResourceType, SetResourceType)
- def __init__(self, resource_id=None, resource_common_name=None,
- resource_description=None, resource_type=None, *args, **kwargs):
- """Constructs a new CalendarResourceEntry object with the given arguments.
- Args:
- resource_id: string (optional) The resource ID to give this new object.
- resource_common_name: string (optional) The common name to give this new
- object.
- resource_description: string (optional) The description to give this new
- object.
- resource_type: string (optional) The type to give this new object.
- args: The other parameters to pass to gdata.entry.GDEntry constructor.
- kwargs: The other parameters to pass to gdata.entry.GDEntry constructor.
- """
- super(CalendarResourceEntry, self).__init__(*args, **kwargs)
- if resource_id:
- self.resource_id = resource_id
- if resource_common_name:
- self.resource_common_name = resource_common_name
- if resource_description:
- self.resource_description = resource_description
- if resource_type:
- self.resource_type = resource_type
- class CalendarResourceFeed(gdata.data.GDFeed):
- """Represents a feed of CalendarResourceEntry objects."""
- entry = [CalendarResourceEntry]